gpt4 book ai didi

哈希引用中的 Perl 反引号给出不同的结果

转载 作者:行者123 更新时间:2023-12-05 00:18:39 26 4
gpt4 key购买 nike

我有一个名为 a.gz 的文件,它是一个 gzip 压缩文件,解压缩时包含以下行:

a
b

下面是两个 perl 代码块,我认为“应该”给出相同的结果,但事实并非如此。

代码#1:
use Data::Dumper;
my $s = {
status => 'ok',
msg => `zcat a.gz`
};
print Dumper($s),"\n";

代码#2:
use Data::Dumper;
my $content = `zcat a.gz`;
my $s = {
status => 'ok',
msg => $content
};
print Dumper($s), "\n";

代码 #1 给出以下结果:
Odd number of elements in anonymous hash at ./x.pl line 8.
$VAR1 = {
'msg' => 'a
',
'b
' => undef,
'status' => 'ok'
};

代码 #2 返回以下结果:
$VAR1 = {
'msg' => 'a
b
',
'status' => 'ok'
};

我正在使用在 Linux 中运行的 perl 5.10.1

最佳答案

perldoc perlop :

In scalar context, it comes back as a single (potentially multi-line) string, or undef if the command failed. In list context, returns a list of lines (however you've defined lines with $/ or $INPUT_RECORD_SEPARATOR), or an empty list if the command failed.



分配给标量 puts ``在标量上下文中;在 { ... } 中使用它把它放在列表上下文中。
{ LIST }获取一个列表并在键和值之间交替解释其内容,即 key1, value1, key2, value2, key3, value3, ... .如果元素的数量是奇数,您会收到警告(缺失值被视为 undef)。
LIST , LIST (列表上下文中的逗号运算符)连接两个列表。
=>, 一样工作但会自动在其左侧引用标识符(如果有的话)。

关于哈希引用中的 Perl 反引号给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37631634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com