in reply to 2nd obfu

Interesting use of ARRAY(0x...) reference value in scalar context to provide a series of offsets. Also liked the (split//,$}) to assign to @_ although just(split//,[]) would have made me think really hard for a while (how do you split an anon array ref??) so might have been a bit more obfu.

Here is the decode

tachyon

$_="415250511528293422193223122519645759676174"; # $_{$_}++; # no effect # $}=[]; # $} has scalar val ARRAY(0x..) # (split//,$}); # assign @_ = qw(A R R A Y ( ...) # @}=map$_,@_; # @}=@_; # {@_=map @}->[$_],(0..5);}# @_ = first 6 elements @_ # net effect of all of the above commented out code @_=qw/A R R A Y (/; # push@a,$&while s;..;;; push @a, $1 while /(..)/g; # load @a with 41,52.... #$j=join'',map (chr((ord$_[0])+$_),(@a[0..3])); #$a=join'',map(chr((ord$_[1])+$_),(@a[4..10])); #$p=join'',map(chr((ord$_[4])+$_),(@a[11..14])); #$h=join'',map(chr((ord$_[5])+$_),(@a[15..20])); # #print join' ',$j,$a,$p,$h,"\n"; # this is the same as the above code print chr(65+$_) for @a[0..3]; print $"; # prints a space by default print chr(82+$_) for @a[4..10]; print $"; print chr(89+$_) for @a[11..14]; print $"; print chr(40+$_) for @a[15..20]; print $"; # this is almost the same, but no spaces :-( @offset = ((65)x4,(82)x7,(89)x4,(40)x6); map{print chr($a[$_]+$offset[$_])}0..20;