Text::Find::Scalar - Find scalar names in a text.
version 0.10
use Text::Find::Scalar; my $finder = Text::Find::Scalar->new(); my $arrayref = $finder->find($string); # or $finder->find($string); while($finder->hasNext()){ print $finder->nextElement(); }
This class helps to find all scalar variables in a text. It is recommended to use PPI to parse Perl programs. This module should help to find SCALAR names e.g. in error messages.
Scalars that should be found:
double quoted
"$foo"
references
$foo->{bar}
elements of arrays
$array[0]
Scalars that are not covered
single quoted
'$foo'
#!/usr/bin/perl use strict; use warnings; use Text::Find::Scalar; my $string = q~This is a $variable another $variable and another "$eine", but '$no' is not found. A $reference->{$key} is found. An array element $array[0] is also found~; my $finder = Text::Find::Scalar->new(); my @scalars = $finder->find($string); print $_,"\n" for(@scalars);
prints
/homes/reneeb/community>find_scalar.pl $variable $variable $eine $reference->{$key} $array[0]
my $finder = Text::Find::Scalar->new();
creates a new Text::Find::Scalar object.
Text::Find::Scalar
my $string = q~Test $test $foo '$bar'~; my $arrayref = $finder->find($string); my @found = $finder->find($string);
parses the text and returns an arrayref that contains all matches.
while($finder->hasNext()){ print $finder->nextElement(); }
returns 1 unless the user walked through all matches.
print $finder->nextElement(); print $finder->nextElement();
returns the next element in list.
my $uniquenames = $finder->unique();
returns an arrayref with a list of all scalars, but each match appears just once.
my $counter = $finder->count('$foo');
returns the number of appearances of one scalar.
Renee Baecker <reneeb@cpan.org>
This software is copyright (c) 2016 by Renee Baecker.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Text::Find::Scalar, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Text::Find::Scalar
CPAN shell
perl -MCPAN -e shell install Text::Find::Scalar
For more information on module installation, please visit the detailed CPAN module installation guide.