Compiler::Lexer(3pm)

Compiler::Lexer3pm

Lexical analyzer for perl5

Usage

  use Compiler::Lexer;
  use Data::Dumper;
  my $filename = $ARGV[0];
  open my $fh, '<', $filename or die "Cannot open $filename: $!";
  my $script = do { local $/; <$fh> };
  my $lexer = Compiler::Lexer->new($filename);
  my $tokens = $lexer->tokenize($script);
  print Dumper $tokens;
  my $modules = $lexer->get_used_modules($script);
  print Dumper $modules;

Methods

my $lexer = Compiler::Lexer->new($options);

create new instance. You can create object from $options in hash reference.

options list

filename
verbose : includes token of Pod, Comment and WhiteSpace
$lexer->tokenize($script);

get token objects includes parameter of 'name' or 'type' or 'line' and so on. This method requires perl source code in string.

$lexer->set_library_path(['path1', 'path2' ...])

set libraries path for reading recursively. Default paths are @INC.

$lexer->recursive_tokenize($script)

get hash reference like { 'module_nameA' => [], 'module_nameB' => [] ... }. This method requires per source code in string.

$lexer->get_used_modules($script);

get names of used module. This method requires perl source code in string.

Contributors

tokuhirom: Tokuhiro Matsuno

Releases

3 releases since Debian 11 (Bullseye); the text changed 2 times.

  1. 11
  2. 12
  3. 13

Author

Masaaki Goshima (goccy) <goccy(at)cpan.org>

From libcompiler-lexer-perl 0.23-3+b4 in Debian 13 (Trixie). Parsed by carta from the page's man source.