Renee Baecker

NAME

Text::Find::Scalar - Find scalar names in a text.

SYNOPSIS

  use Text::Find::Variable;
  
  my $finder = Text::Find::Variable->new();
  my $arrayref = $finder->find($string);
  
  # or
  
  $finder->find($string);
  while($finder->hasNext()){
    print $finder->nextElement();
  }

DESCRIPTION

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'

EXAMPLE

  #!/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]

METHODS

new

  my $finder = Text::Find::Scalar->new();

creates a new Text::Find::Scalar object.

find

  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.

hasNext

  while($finder->hasNext()){
    print $finder->nextElement();
  }

returns 1 unless the user walked through all matches.

nextElement

  print $finder->nextElement();
  print $finder->nextElement();

returns the next element in list.

unique

  my $uniquenames = $finder->unique();

returns an arrayref with a list of all scalars, but each match appears just once.

count

  my $counter = $finder->count('$foo');

returns the number of appearances of one scalar.

"private" methods

_Elements

returns an arrayref of all scalars found in the text

_Counter

AUTHOR

Renee Baecker, <module@renee-baecker.de>

COPYRIGHT AND LICENSE

Copyright (C) 2006 by Renee Baecker

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.