考虑此值:

my $value = hex('0x12345678');

我希望自己的hexdump像这样(相同的位顺序):
0000000 1234 5678

我使用了这种方法,但是它混合了我的价值:
open(my $out, '>:raw', 'foo') or die "Unable to open: $!";
print $out pack('l', $value);  # Test in little endian
print $out pack('l>', $value); # Test in big endian

这是我得到的:
0000000 5678 1234 3412 7856

我如何才能按顺序获得钻头?

编辑

所以问题可能出在我的hexdump上,因为我得到了与建议答案相同的输出。
$ perl -e 'print pack $_, 0x12345678 for qw( l> N )' | hexdump
0000000 3412 7856 3412 7856

我用hexdump -C得到了正确的结果:
$ perl -e 'print pack $_, 0x12345678 for qw( l> N )' | hexdump -C
00000000  12 34 56 78 12 34 56 78                           |.4Vx.4Vx|

我在这里找到了解释:
hexdump confusion

最佳答案

'l>'选项对我有用(请注意,虽然没有调用hex)。另外,N作为模板也可以使用:

perl -e 'print pack $_, 0x12345678 for qw( l> N )' | xxd
0000000: 1234 5678 1234 5678

09-26 01:44