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下的异常推送行为所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)