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

    Definitely. My goal with automation in a case like this would be to save as much typing as possible, but I'd still expect to have to test and review the edits manually. Also, I'd keep my regex fairly tight, even if that means it misses some due to unexpected formatting differences. Better to miss a few and have to edit those manually than to have it start replacing things I don't expect.

    Aaron B.
    Available for small or large Perl jobs and *nix system administration; see my home node.

Re^5: hash dereferencing issue with perl 5.16.3
by Anonymous Monk on May 03, 2015 at 07:52 UTC

    extinct forms

    Hmm, never tested for, never documented, actually goes against the documentation ... most mutations die off :)

      ... most mutations die off :)

      Yet sometimes there are surprising survivals among the forms we thought extinct. Like the coelacanth, they may be fascinating and delightful. Or they may be Godzilla.


      Give a man a fish:  <%-(-(-(-<