my $i = 1; (push @num, (($num & $i) ? 1 : 0)) and $i<<=1 until $i > $num; #### (push @num, (($num & 1) ? 1 : 0)) and $num>>=1 until 1 > $num;