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

perl – Catalyst MVC下的异常推送行为,第1张

概述我希望以下代码 my @array;for my $rapport ( qw( value1 value2 value3 ) ) { push @array, { key => $rapport };} 生产: $VAR1 = [ { 'key' => 'value1' }, { 'key' => 'value2' 我希望以下代码

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' ]          },];

有人可以向我解释原因吗?

编辑:任何有相同问题的人都可以添加一个例子吗?在一些代码更改之后我无法重现,但是由于它被推崇了5次我假设其他一些用户也遇到过这个问题?

解决方法 这个代码示例……

#!/usr/bin/perluse 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/perluse Data::Dumper;my @input = [ "var1","var3" ]; # sometimes people forget to dereference their variablesmy @array;for my $rapport ( @input ) {    push @array,{ key => $rapport };}print Dumper( \@array );exit;

显示…

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

正如您所看到的,两个示例都循环遍历数组,但第二个示例是一个数组,它是使用引用值初始化的.因为在Catalyst中你通常通过你的应用程序通过stash或类似的结构发送各种值,你可以检查天气你的数组真的包含标量值:)

总结

以上是内存溢出为你收集整理的perl – Catalyst MVC下的异常推送行为全部内容,希望文章能够帮你解决perl – Catalyst MVC下的异常推送行为所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1269369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存