如何在Perl中反转8字节字符串的字节顺序?

use*_*955 1 perl

如何在Perl中将FF02500000000020更改为20000000005002FF?

我能做的方法是:

  1. 将FF02500000000020分为两部分FF025000和00000020
  2. 在它们之前添加0x;
  3. 然后

    my $num2=0xFF025000;  
    my $num3=0x00000020;  
    my $s2=pack('I!',$num2);  
    my $s3=pack('I!',$num3);  
    print unpack ("H*", "$s2") . "\n";  
    print unpack ("H*", "$s3") . "\n";
    
    Run Code Online (Sandbox Code Playgroud)
  4. 然后再将两部分组合起来.

有什么简单的方法吗?

ijw*_*ijw 5

print reverse split /(..)/, 'FF02500000000020';
Run Code Online (Sandbox Code Playgroud)

或者,如果你喜欢它的标量:

$val = join '', reverse split /(..)/, 'FF02500000000020';
Run Code Online (Sandbox Code Playgroud)