http://www.perlmonks.org?node_id=54690


in reply to Re(golf): I'm looking for the faster way to convert char 2 Bin and Bin 2 char (8bits)
in thread I'm looking for the faster way to convert char 2 Bin and Bin 2 char (8bits)

Testing it would have found
Name "main::n" used only once: possible typo at - line 5.
But besides that, ** is a more expensive operation than you need here especially doing it 3 times per iteration.
using 1<<$iin place of 2**$i would be a bit faster.
my $i = 1; (push @num, (($num & $i) ? 1 : 0)) and $i<<=1 until $i > $num;
is even better. And
(push @num, (($num & 1) ? 1 : 0)) and $num>>=1 until 1 > $num;
still faster...