$x = '3336703366667337000033670003' ;$d=sub {chr unpack('N',pack ( 'B32',substr(('0'x32).((shift) * (shift)),-32) )) ;};print ${ dx( $d, $x) }; sub dx{ while ( $_[1]=~/(\d{6})(\d{1})/g){$out .= &{ $_[0]}($1 ,$2); }\$out;}