История изменений
Исправление alex0x08, (текущая версия) :
print спокойно пишет бинарные данные, вот из моей же статьи про встроенный бинарник:
my $bin = `echo "'"$bin_encoded"'" | base64 -d | gunzip`;
print $fh $bin;
Так что задача сводится к итерации массиву и вызову print в цикле с преобразованием в бинарный вид.
Или вот выдержка из Perl Cookbook:
To convert a Perl integer to a text string of ones and zeros, first pack the integer into a number in network byte order[3] (the «N» format), then unpack it again bit by bit (the «B32» format).
sub dec2bin {
my $str = unpack("B32", pack("N", shift));
$str =~ s/^0+(?=\d)//; # otherwise you'll get leading zeros
return $str;
}
To convert a text string of ones and zeros to a Perl integer, first massage the string by padding it with the right number of zeros, then just reverse the previous procedure.
sub bin2dec {
return unpack("N", pack("B32", substr("0" x 32 . shift, -32)));
}
Исходная версия alex0x08, :
print спокойно пишет бинарные данные, вот из моей же статьи про встроенный бинарник:
my $bin = `echo "'"$bin_encoded"'" | base64 -d | gunzip`;
print $fh $bin;
Так что задача сводится к итерации массиву и вызову print в цикле с преобразованием в бинарный вид.