gpt4 book ai didi

perl - Catalyst MVC 下的异常推送行为

转载 作者:行者123 更新时间:2023-12-04 21:43:42 26 4
gpt4 key购买 nike

我希望以下代码

my @array;
for my $rapport ( qw( value1 value2 value3 ) ) {
push @array, { key => $rapport };
}

生产:
$VAR1 = [
{
'key' => 'value1'
},
{
'key' => 'value2'
},
{
'key' => 'value3'
}
];

但是,在 Catalyst MVC 下运行此代码段我得到:
$VAR1 = [
{
'key' => [ 'value', 'value2', 'value3' ]
},
];

有人可以向我解释为什么吗?

编辑 : 有同样问题的 friend 可以举个例子吗?在某些代码更改后我无法重现,但由于它已被投票 5 次,我假设其他一些用户也遇到过这个问题?

最佳答案

此代码示例...

#!/usr/bin/perl

use Data::Dumper;
my @input = ( "var1", "var2", "var3" );
my @array;
for my $rapport ( @input ) {
push @array, { key => $rapport };
}

print Dumper( \@array );

exit;

产生...
$VAR1 = [
{
'key' => 'var1'
},
{
'key' => 'var2'
},
{
'key' => 'var3'
}
];

但是以下...
#!/usr/bin/perl

use Data::Dumper;
my @input = [ "var1", "var2", "var3" ]; # sometimes people forget to dereference their variables
my @array;
for my $rapport ( @input ) {
push @array, { key => $rapport };
}

print Dumper( \@array );

exit;

显示...
$VAR1 = [
{
'key' => [
'var1',
'var2',
'var3'
]
}
];

正如您所看到的,这两个示例都遍历一个数组,但第二个示例是一个数组,它是用引用值初始化的。由于在 Catalyst 中,您通常通过 stash 或类似结构通过应用程序传送各种值,因此您可以检查数组是否真的包含标量值 :)

关于perl - Catalyst MVC 下的异常推送行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19248778/

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