Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perl json映射创建问题_Json_Perl - Fatal编程技术网

perl json映射创建问题

perl json映射创建问题,json,perl,Json,Perl,我是perl新手(我几乎什么都不懂:-) 我有一个脚本可以在本地计算机上运行,但不能在服务器上运行:-( 它看起来像: my $json = JSON->new; my $json_map = []; for (my $i = 0; $i <= $#commitlist; $i++) { my %co = %{$commitlist[$i]}; ... push $json_map, {esc_html($co{'id'})=> {author=>e

我是perl新手(我几乎什么都不懂:-) 我有一个脚本可以在本地计算机上运行,但不能在服务器上运行:-(

它看起来像:

my $json = JSON->new;
my $json_map = [];


for (my $i = 0; $i <= $#commitlist; $i++) {
    my %co = %{$commitlist[$i]};
...

    push $json_map, {esc_html($co{'id'})=> {author=>esc_html($co{'author'}),pubDate=>$cd{'rfc2822'},link=>$co_url, title=>esc_html($co{'title'})}};


}

my $output = $json->encode($json_map);
print $output . "\n";
但现在我在服务器上遇到了以下问题(有perl 5.8.8版本,但我想在脚本中修复它):


要推送的arg 1的类型必须是“};”附近XX行XX处的数组(非私有变量)

当您进行推送时,您需要取消引用第一个参数(即您正在推送内容的数组)。如下所示:

push @$json_map, ...

希望这能有所帮助。

当您进行推送时,您需要取消引用第一个参数(即您正在将内容推送到的数组)。如下所示:

push @$json_map, ...
希望这能有所帮助。

较新版本的Perl(从5.13左右开始)接受对
push
的数组引用,这可能是它在提问者的本地机器上工作的原因。较新版本的Perl(从5.13左右开始)接受对
push
的数组引用,这可能是它在提问者的本地机器上工作的原因。