Update: I added an example for an if() conditional,
which was the original poster's actual intent.
I think that his implication was just a clarification of a
subtlety that escapes many Perl novices.
The point is that you don't have to use the my() declaration
between curly braces to define its scope within a block of
code. You can use my() within the condition of an if/else
block:
if ( (my $name = GetName()) =~ /^\w+$/) ) {
print $name;
}
And the variable $name has the scope of that conditional.
You can also use the my() declaration in a loop control
statement:
while (my $line = <>) {
print $line;
}
foreach my $name (@people) {
print $name;
}
And the variable's scope is that of the loop. It was
certainly a revelation for me, once upon a time...
buckaduck |