Из этого вопроса:
bytearray - Perl pack / unpack и длина двоичной строки - Переполнение стека
Я узнал, что @unparray = unpack("d "x5, $aa);
в приведенном ниже фрагменте приводит к строковым элементам в unparray
, а не к числам с двойной точностью (как я ожидал).
Можно ли каким-то образом получить массив значений двойной точности из строки байтов $aa
в приведенном ниже фрагменте кода:
$a = pack("d",255);
print length($a)."\n";
# prints 8
$aa = pack("ddddd", 255,123,0,45,123);
print length($aa)."\n";
# prints 40
@unparray = unpack("d "x5, $aa);
print scalar(@unparray)."\n";
# prints 5
print length($unparray[0])."\n"
# prints 3
printf "%d\n", $unparray[0] '
# prints 255
# one liner:
# perl -e '$a = pack("d",255); print length($a)."\n"; $aa = pack("ddddd", 255,123,0,45,123); print length($aa)."\n"; @unparray = unpack("d "x5, $aa); print scalar(@unparray)."\n"; print length($unparray[0])."\n" '
Большое спасибо заранее за любые ответы,
Ура!