Jon Forsyth <jon4s...@gmail.com> asked: > I am truly a beginner. Could someone help me understand this syntax > out of a code example from "Learning Perl"? On line 5 I'm confused > as to why "my $number" is between "foreach" and the ()? is "my > $number part of the loop?
"my" declares a variable for the lexical scope. While Perl by itself will happily let variables spring into existence whenever you first refer to them, the accepted best practice is to run perl with the -w switch or the "use warnings;" pragma which requires variables to be declared before their first use. The "foreach" loop iterates over each element in the argument list passed between the (). Unless there's a variable name between the keyword foreach and the braces, foreach makes the default variable $_ to an alias for each of the elements in the argument list. If there's a variable between "foreach" and the braces, that variable becomes the alias instead. Please note that I said alias instead of copy - if you modify $_ or your loop variable, it'll change the contents of your array: #!/usr/bin/perl -w my @array = qw(foo baz bar); print join(',',@array), "\n"; foreach (@array){ $_ = uc($_); } print join(',',@array), "\n"; __END__ HTH, Thomas -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/