Perl 数组(@data) 到变量($data)

标签 perl

我正在做套接字编程。 从套接字接收到的数据($data)包含4个字节的长度数据+json数据。 我想修剪长度并只解析 json。

我已经完成了代码并且工作正常。但是我想知道是否有更有效的方法(算法)。

有没有一种有效的方法可以将数组移动到 perl 中的变量?

@tmpp = split(//,$data); #data = socket data

my $t1 = sprintf("%02x%02x%02x%02x",ord($tmpp[0]),ord($tmpp[1]),ord($tmpp[2]),ord($tmpp[3])); 
$t1 = hex($t1); #t1 = length 

my $json;
my @tmp = @tmpp[0..-1];
foreach(@tmp){ $json .= $_;}<br>
print $json;

Ok Print ; 

最佳答案

这是 pack/unpack 的标准案例. N/a 模板将解压一个长度为 N 的字符串(按网络字节顺序):

my( $json ) = unpack 'N/a', $data;
print $json;

关于Perl 数组(@data) 到变量($data),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54557725/

相关文章:

perl - 我可以在 Perl 中将数组初始化为给定大小吗?

linux - 通过 SSH 传递带参数的脚本

perl - 为什么函数参数会引发列表上下文?

perl - 如何为 Gmail SMTP 设置 SSL 证书

Perl,哪个是为 Web 应用程序缓存数据的最佳模块?

perl - 帮助在 Perl 中传递对类子例程的引用

perl - 在 perl 中使用 POSIX::strftime 获取周数

arrays - 使用 perl array_diff 实用程序比较 2 个数组之间的差异

Perl 事件循环有多个阻塞观察者?

php - 可以通过 PHP 从 Perl 执行 SQL 以提供全面的性能统计信息吗?