in reply to Unobvious Pathological Code Snippets

A recent favorite, noted by Dominus, is that your example could be rewritten as:

for $t qw(Whom the bell tolls) {} # huh? for qw() ? continue { print "$t\n"; next }

Update: fixed code, frodo72++

Replies are listed 'Best First'.
Re^2: Unobvious Pathological Code Snippets
by merlyn (Sage) on Mar 28, 2006 at 17:16 UTC
      It's not like this is intended behavior :)

      My other favorite is even sicker and more useful. Credit this time to audreyt++ who checked this into pugs with the commit message

      do not mention $@% in the Makefile for portability

      We had a one-liner that was breaking differently on different platforms. Insane desugaring to the rescue!

      - \$(PERL) -MFile::Spec -e "my (undef, \$\$dir, \$\$file) = File +::Spec->splitpath(shift); chdir(\$\$dir); system(q+$hsc2hs $hsc2hs_fl +ags + . \$\$file);" \$< + \$(PERL) -MFile::Spec -e "sub p () { File::Spec->splitpath(ARG +V->[0]) }; chdir((p)[1]); system(q($hsc2hs), qw($hsc2hs_flags), (p)[2 +]);" \$<
      (The thing to note here is ARGV->[n].)
Re^2: Unobvious Pathological Code Snippets
by polettix (Vicar) on Apr 01, 2006 at 00:42 UTC
    Am I missing something? With perl 5.8.8 in linux I get an error:
    poletti@PolettiX:~/sviluppo/perl$ perl pathological.pl Missing $ on loop variable at pathological.pl line 1. poletti@PolettiX:~/sviluppo/perl$ poletti@PolettiX:~/sviluppo/perl$ poletti@PolettiX:~/sviluppo/perl$ cat pathological.pl for qw(Whom the bell tolls) {} # huh? for qw() ? continue { print "$_\n"; next }
    while the OP's example...

    Flavio
    perl -ple'$_=reverse' <<<ti.xittelop@oivalf

    Don't fool yourself.
      Oops, ()-less qw requires a loop variable. Fixed.