Text::Darts - Perl interface to DARTS by Taku Kudoh


Text-Darts documentation  | view source Contained in the Text-Darts distribution.

Index


NAME

Top

Text::Darts - Perl interface to DARTS by Taku Kudoh

SYNOPSIS

Top

  use Text::Darts;
  my @words = qw/ALGOL ANSI ARCO ARPA ARPANET ASCII/;
  my %word   = map { $_ => lc $_ } @words;
  my $td     = Text::Darts->new(@words);
  my $newstr = $td->gsub("ARPANET is a net by ARPA", sub{ "<<$_[0]>>" });
  # $newstr is now "<<ARPANET>> is a net by <<ARPA>>".
  my $lstr   = $td->gsub("ARPANET is a net by ARPA", \%word);
  # $Lstr is now "arpanet is a net by arpa".

  # or
  my $td     = Text::Darts->open("words.darts"); # make one with mkdarts
  my $newstr = $td->gsub($str, sub{ 
     qq(<a href="http://dictionary.com/browse/$_[0]">$_[0]</a>)
  }); # link'em all!

DESCRIPTION

Top

Darts, or Double-ARray Trie System is a C++ Template Library by Taku Kudoh. This module makes use of Darts to implement global replace like below;

  $str = s{ (foo|bar|baz) }{ "<<$1>>" }msgex;

The problem with regexp is that it is slow with alterations. Suppose you want to anchor all words that appear in /usr/share/dict/words with regexp. It would be impractical with regexp. This module makes it practical.

Even if you are using perl 5.10 or better which does TRIE optimization internally, you still have to compile the regexp everytime you run the script. So it is still more practical to use this module if your match is exact -- containing no quantifier.

Since Version 0.05, Text::Darts also accepts a hash reference instead of a code reference. In such cases gsub behaves as follows.

  $str = s{ (foo|bar|baz) }{$replacement{$1}}msgx;

like s///ge vs s///g, this is less flexible but faster.

REQUIREMENT

Top

Since Version 0.07, you no longer need to have Darts installed. This module now bundles darts.h which is needed to build this module. To get the most out of Darts, you still need to install Darts 0.32 or above.

http://chasen.org/~taku/software/darts/index.html (Japanese)

  fetch http://chasen.org/~taku/software/darts/src/darts-0.32.tar.gz
  tar zxvf darts-0.32.tar.gz
  cd darts-0.32
  configure
  make
  make check
  sudo make install







EXPORT

None.

Functions

Text::Darts::DARTS_VERSION

returns DARTS version. Currently 0.32

SEE ALSO

Top

http://chasen.org/~taku/software/darts/index.html (Japanese)

Regexp::Assemble

AUTHOR

Top

Dan Kogai, <dankogai@dan.co.jp>

COPYRIGHT AND LICENSE

Top


Text-Darts documentation  | view source Contained in the Text-Darts distribution.