arrays - Perl:将数组元素复制到单个字符串中
问题描述
我试图将每个数组元素稍作修改复制到 Perl 中的单个字符串变量中。我想要的是通过将 0x 前缀添加到字符串中来复制每个元素。这是我到目前为止所尝试的:
#!usr/bin/perl
use strict;
use warnings;
my @values = (01, 02, 03, 04);
my $res = "";
foreach my $val (@values) {
$res = join '', "0x", "$val", ", ";
}
print "$res\n";
exit 0;
结果我得到了0x04,。想要的结果应该是:0x01、0x02、0x03、0x04
解决方案
在您的循环中,您会在每次迭代中覆盖字符串。这就是为什么你只得到最后一个值。
您可以使用join()
整个数组,而不仅仅是元素的各个部分。要为数字添加前缀和零填充,并在数组中获取它们的十六进制表示,您可以使用map()
和sprintf()
。
#!/usr/bin/perl
use strict;
use warnings;
my @values = (01, 02, 03, 04);
my $res = '';
$res = join(', ', map({ sprintf('0x%02x', $_) } @values));
print("$res\n");
exit(0);
(另请注意,您的 shebang 缺少前导斜杠 ( /
)。很可能这不是故意的。)
推荐阅读
- linux - 我的“spring boot application”无法访问但cpu和heap使用正常
- laravel - Laravel PUT 请求失败:解析错误:响应具有重复的“Content-Length”标头
- docker - 你真的需要运行 ./install.sh 脚本来在本地托管哨兵吗?
- node.js - 每次发出请求时,我可以使用 node.js 中的 app.use 函数来执行常见任务吗?
- amazon-web-services - 无服务器 | 如何将 Lambda 授权方设置为无(公共 API)
- python - 有什么办法可以平滑物体边缘或去除物体边缘的不规则和尖峰结构
- javascript - 我们如何在 FullCalendar 5.3.2 中更改现有事件的 ID
- python - scikit-learn机器学习中进行回归时切换损失函数的方法
- typescript - 在 Typescript 中验证正则表达式匹配的字符串类型的类型?
- python - Windows exe 上的 Setuptools 脚本丢失