#!/usr/bin/perl @k=split//,'colin@colinhorne.co.uk'; @p=sub{$_=pop;map{sub{$_=pop;map{chr(eval"0b$_")}/.{8}/g}->(sprintf('%032b',eval "0x$_"))}split/,/;}->("291a1f1d,4e210d00,18010b1a,4f220b17,4243274f,16080a1e"); sub d{$b=255&$b<<1|($_?1:0);++$c%8or print chr$b}sub{$f=pop;map{for$a(map{2**-$ _}(-7..0)){local$_=(ord($k[$_%$#k])^ord($p[$_]))&$a;&$f}}0..$#p}->(\&d);print$/