Когда вы будете использовать распаковку ('h *'…) или упаковку ('h *'…)?

В Perlpack а такжеunpack есть два шаблона для преобразования байтов в / из гекса:

hШестнадцатеричная строка (сначала низкий nybble).
HШестнадцатеричная строка (сначала высокий nybble).

Это лучше всего пояснить на примере:

use 5.010; # so I can use say
my $buf = "\x12\x34\x56\x78";

say unpack('H*', $buf); # prints 12345678
say unpack('h*', $buf); # prints 21436587

Как вы видете,H это то, что люди обычно имеют в виду, когда они думают о преобразовании байтов в / из шестнадцатеричного. Так какова цельh? Ларри, должно быть, думал, что кто-то может использовать это, или он не потрудился бы включить это.

Можете ли вы привести пример из реальной жизни, где вы бы хотели использоватьh вместоH сpack или жеunpack? Я ищу конкретный пример; если вы знаете о машине, которая организовала свои байты таким образом, что это было, и можете ли вы дать ссылку на какую-то документацию по ней?

Я могу придумать примеры, где вы могли быиспользование hнапример, сериализацию некоторых данных, когда вам на самом деле неважно, какой формат, если вы можете прочитать их обратно, ноH было бы так же полезно для этого. Я ищу пример, гдеh являетсяБольше полезно чемH.

Ответы на вопрос(3)

Ваш ответ на вопрос