in reply to strange scope
Thanks for all the feedback folks.
Zaxo addressed the issue concisely - thanks.
For the other posts that ranted about the logic, I am a bit surprised - first, because it's a bit odd to change the logic of some code to fix a warning, and second, it ignores TMTOWTDI (although the trend in paper tomes on Perl seem to be straying from that mantra).
Anyways, here's the actual code snippet (parsing S-Expr subset):
my $text; if (($text) = $line =~ m!^\s*\((.*)\)[\r\n]+$!) { # keyed value my ($key, $val) = split( /\s+/, $text, 2 ); $val =~ s!(^[\'\"]|[\'\"]$)!!g; $info->{$key} = $val; } elsif (($text) = $line =~ m!^\s*\'(.*)\'[\r\n]+$!) { # quoted value $text =~ s!(^[\'\"]|[\'\"]$)!!g; return $text; } elsif (my ($key) = $line =~ m!^\s*\((\S+)[\r\n]+$!) { # sub-level push @{$info->{$key} ||= []}, $self->_parse_vm_info( $lines ); }
And a solution to the warning was never very interesting to me - I had solved it by polluting the enclosing block (as above) and while I liked the single initial def by Zaxo, I chose not to use that because future edits could make the def inadvertently disappear for the 2nd block (a minor annoyance).
Onward, McPerl
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: strange scope
by naikonta (Curate) on May 25, 2007 at 10:30 UTC |