in reply to Re^3: hash dereferencing issue with perl 5.16.3
in thread hash dereferencing issue with perl 5.16.3
That might not work on all your variable names or if some are formatted a bit differently ...
In particular, note that it's possible to go a little nuts with whitespace and the Perl compiler still calmly accepts it. That, and the same basic extinct syntax also works with arrays and array references, which KANAKADANDI has never said are not present in the code.
c:\@Work\Perl>perl -wMstrict -le "print qq{perl version $]}; ;; my @ra = qw(a b c d); my $ar = \@ra; print ${ ra }[2]; print ${ @ ra }[2]; print ${ $ ar }[2]; print ${ @ $ar }[2]; print ${ @ { $ ar } }[2]; ;; my %h = qw(a aye b bee c see); my $hr = \%h; print ${ h }{b}; print ${ % h }{b}; print ${ $ hr }{b}; print ${ % $hr }{b}; print ${ % { $ hr } }{b}; " perl version 5.008009 c c c c c bee bee bee bee bee
Another point I would make is that a search for these extinct forms should be based on a rigorous definition of a Perl identifier (insofar as one can be defined in user code):
my $identifier = qr{ \b [[:alpha:]_] \w* \b }xms;
(or that's my first cut, anyway — but it doesn't cover "fully qualified" identifiers). See Variable names in perldata.
I think the best automated search-and-replace is still going to need a final manual patching pass running with strictures enabled, which I sure hope KANAKADANDI is able to do!
Give a man a fish: <%-(-(-(-<
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: hash dereferencing issue with perl 5.16.3
by aaron_baugher (Curate) on May 03, 2015 at 08:29 UTC | |
|
Re^5: hash dereferencing issue with perl 5.16.3
by Anonymous Monk on May 03, 2015 at 07:52 UTC | |
by AnomalousMonk (Archbishop) on May 03, 2015 at 23:41 UTC |