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
$optionsin 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
License and copyright
Copyright (c) 2013, Masaaki Goshima (goccy). All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Releases
3 releases since Debian 11 (Bullseye); the text changed 2 times.