Sudarshan Raghavan wrote:
> On 5 Sep 2002, Chuck Belcher wrote:
>
> @scalars_used{/(\$\w+)/g} = ();
> print Dumper(\%scalars_used);
> }
> print Dumper(\%scalars_used);
this is not going to work well. consider:
#!/usr/bin/perl -w
use strict;
=item whatever
$w $x $y $z
=cut
#-- $a $b $c $d
print "hello world\n";
__END__
these aren't used at all. the problem is probably more challenge than you
first think. how about:
#!/usr/bin/perl -w
use strict;
my %vars;
open(PROG,'foo.pl') || die $!;
while(<PROG>){
chomp;
#-- ignore pod
if(/^=.+/){
while(<PROG>){
chomp;
last if(/^=cut$/);
}
}
s/#.*//; #-- ignore $this
@vars{/[^\\](\$\w+)/g} = (); #-- don't capture print "\$hi"
}
close(PROG);
foreach my $var (keys %vars){
print "$var\n";
}
__END__
the above is far from perfect. condiser:
print '$hi';
print 'abcd $hi abcd';
print <<'hi'
$a
$b
$c
hi
print qw{$hi $hello};
...etc etc
these aren't variables but the above code will consider them to be which is
bad.
david
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]