modred has asked for the wisdom of the Perl Monks concerning the following question:
The following psuedo-code illustrates something I have just recently
run into when relying on $_.
while(<FILE>) { if(/matches/) # use of $_, everything is ok { $object->doSomething($part_of_line); } print "$_\n"; # here $_ has a value of undef and causes problems }
and from the object module
sub doSomething { ... open(FILE2, $file2); while(<FILE2>) { # do more stuff } # At this point in the code, $_ is undef and since $_ is # global... }
This is fixed by adding a local($_); to the doSomething subroutine, is it (adding a local($_);) something that I should be doing on a regular basis in the subroutines of my modules or did I just happen upon an out of the ordinary situation?
Back to
Seekers of Perl Wisdom