sub grey { $b=shift; for $c (0..2**$b-1){for(-$b..-1){ $l[$c].=($c&1<<-$_-1)>>-$_-1^($c&1<<-$_)>>-$_;}} return \@l; }