加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 23:32:49 所属栏目:大数据 来源:网络整理
导读:我希望以下代码 my @array;for my $rapport ( qw( value1 value2 value3 ) ) { push @array,{ key = $rapport };} 生产: $VAR1 = [ { 'key' = 'value1' },{ 'key' = 'value2' },{ 'key' = 'value3' } ]; 但是,在Catalyst MVC下运行此代码段我得到: $VAR1 =
我希望以下代码

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/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","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或类似的结构发送各种值,你可以检查天气你的数组真的包含标量值:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读