my $string = q|=pod =cut &Internals::SvREADONLY(\undef,0); undef=sub{print$_[0]; undef;};|; $string = unpack "h*", $string; # $string is d307f646a0d3365747a06294e6475627e616c637a3a3356725541444f4e4c49582c557e6465666c20392b30257e6465666d3375726b7072796e64742f5b503d5b30257e6465666b3d7b3 $string = join('', map{ uc chr( ord($_) ^ 64 ) } split(//, $string)); # $string is $SPW&VTV!P$SSVUWTW!PVRYT%VTWUVRW%VQV#VSW!S!SSUVWRUUTQTTT&T%T#TYUXR#UUW%VTVUVVV#RPSYR"SPRUW%VTVUVVV$SSWUWRV"WPWRWYV%VTWTR&U"UPS$U"SPRUW%VTVUVVV"S$W"S