kettle has asked for the wisdom of the Perl Monks concerning the following question:
I am using a couple of subroutines in a basic script to parse a text file:
So my question is, why do $ques and $ans remain lowercase; more generally, why does the second subroutine again use $_ from the main body of the program, rather than the local $_ (which I'm guessing ought to be $text)? I can rearrange the script pretty simply to make it work (by not using the extra variable) which I did, but it made me curious as to why it doesn't work the way I've written it above...
thanks!
#!/usr/bin/perl -w use strict; my $text, $ques, $ans; open(IN, "<$ARGV[0]")||die"Couldn't open $ARGV[0]: $!\n"; while(<IN>){ $text = &do_one_thing($_); ($ques, $ans) = &do_another_thing($text); print $ques." :: ".$ans."\n"; } close(IN); sub $do_one_thing{ my $line=uc($_); $line =~ s/this/that/g; return($line); } sub $do_another_thing{ my $another_line, $one, $two; $another_line = $_; ($one, $two) = $another_line =~ /(.[^\*]*)\*(.*)/; return($one, $two); }
So my question is, why do $ques and $ans remain lowercase; more generally, why does the second subroutine again use $_ from the main body of the program, rather than the local $_ (which I'm guessing ought to be $text)? I can rearrange the script pretty simply to make it work (by not using the extra variable) which I did, but it made me curious as to why it doesn't work the way I've written it above...
thanks!
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Why is this incorrect?
by rafl (Friar) on Mar 17, 2006 at 02:18 UTC | |
by zer (Deacon) on Mar 17, 2006 at 05:09 UTC | |
by kettle (Beadle) on Mar 17, 2006 at 07:08 UTC | |
by rafl (Friar) on Mar 17, 2006 at 12:52 UTC | |
Re: Why is this incorrect?
by japhy (Canon) on Mar 17, 2006 at 02:19 UTC | |
Re: Why is this incorrect?
by spiritway (Vicar) on Mar 17, 2006 at 04:13 UTC | |
by kettle (Beadle) on Mar 17, 2006 at 07:13 UTC | |
Re: Why is this incorrect?
by trammell (Priest) on Mar 17, 2006 at 02:23 UTC |
Back to
Seekers of Perl Wisdom