in reply to a japh attempt
#!/usr/bin/perl -w
use strict;
##$^=length of @_ which = split on anything the variable
##$_ (which = "\nrekcaH lreP rehtonA tsuJ)
$^=@_=split//,$_="\nrekcaH lreP rehtonA tsuJ";
##At this point, $^=25, @_="\nrekcaH lreP rehtonA tsuJ";
##$_=an anonymous subroutine that is passed $_ (remember,
##$_=the backwards japh)
$_= &{sub{ ## We create another subroutine inside this one (I think)
%_=map{++$/=>$_}split'',pop;
## For every char returned by (pop) we split,
## Applying that split's $_ to the hash returned
## By increasing the value in $/ by one,
## $/ starts out as newline, ++ makes it a 1..
\%_
## I haven't figured out why we make a ref to %_ yet
}}($_);
_:## I suspect the goto below has something to do with this.. ;)
$/='!@_';## Also sets $/ to '!@_';
$/=~s^.{3}^%s^;## Replaces all (three chars in string anyway) with %s
## while($^) goto _ but in the sprintf we printf the value at ${_} (created with map above)
$^&&goto$'.sprintf(''.'_',printf$/,${$_}{$^--});
HIGHLIGHT
|
|---|