Running on my machine with Perl 5.16.3 produces:
er,ackrl heP Just another
Changing
$|-- to
--$| like so:
sub _{@_<2&&return print@_;my@a;push@{$a[--$|]},$_ for
@_;_(@$_)for@a};_ split//,"huroP cels,tetah Jen akrr";
produces the required:
Just another Perl hacker,
See also:
Japhy explains where behaviour of --$| is documented.
Update: To further clarify this mysterious "flip-flop" behavior when $| is --'ed, but not when ++'ed, notice that running:
perl -le 'print --$| for 1..5'
produces:
1
0
1
0
1
while running:
perl -le 'print ++$| for 1..5'
produces:
1
1
1
1
1
BTW, this magical
--$| flip-flop often produces the shortest Perl golf solutions when you need to flip-flop between two different values in a loop; for example, it was used in
Re^2: Mini-Tutorial: Working with Odd/Even Elements and
Spending Time on Saving Time [golf].