私はPerlを初めて使い慣れており、数行のレガシーコードをリファクタリングするのに十分なことを学んでいます。ここでforeachループを変更しようとしているときに構文エラーが発生する
は、私が持っているコードの抜粋です:
my ($data2) = @_;
foreach $app (@{$data2->{record}})
{
...
if ($app->{submission_date__required_})
{
$datetime = convert_date($app->{submission_date__required_}, "both");
print $datetime;
}
}
私は何をしようとしたことはこれです:
my $data = pop $data2;
my $app = $data->{record};
if ($app->{submission_date__required_})
{
$datetime = convert_date($app->{submission_date__required_}, "both");
print $datetime;
}
私が間違っているとどのように何を達成するためにしています何の任意の説明私は(ループから最後のアイテムを取得し、ループ全体を反復する代わりに$ appに割り当てる)必要があります。
ログに奇妙なエラーがあり、ページが読み込まれません。
[Tue May 10 14:55:20 2016] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value in lc at submitapp.pl line 48.
[Tue May 10 14:55:20 2016] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value $notix in print at submitapp.pl line 177.
[Tue May 10 14:55:20 2016] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value $store in string eq at submitapp.pl line 249.
[Tue May 10 14:55:20 2016] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value $store in string eq at submitapp.pl line 258.
[Tue May 10 14:55:20 2016] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value $store in string eq at submitapp.pl line 267.
[Tue May 10 14:55:20 2016] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value $operating_mode in string eq at submitapp.pl line 287.
[Tue May 10 14:55:20 2016] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value $operating_mode in string eq at submitapp.pl line 300.
[Tue May 10 14:55:20 2016] [error] [client xxx.xxx.xxx.xxx] Use of uninitialized value $operating_mode in string eq at submitapp.pl line 328.
[Tue May 10 15:09:10 2016] [error] [client xxx.xxx.xxx.xxx] syntax error at getqbdata.pl line 415, near "), referer: http://xxx.xxx.xxx.xxx/qb/submitapp.pl?action=Submit
[Tue May 10 15:09:10 2016] [error] [client xxx.xxx.xxx.xxx] \t\tprint", referer: http://xxx.xxx.xxx.xxx/qb/submitapp.pl?action=Submit
[Tue May 10 15:09:10 2016] [error] [client xxx.xxx.xxx.xxx] Execution of getqbdata.pl aborted due to compilation errors., referer: http://xxx.xxx.xxx.xxx/qb/submitapp.pl?action=Submit
[Tue May 10 15:09:10 2016] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: getqbdata.pl
ネヴァーマインド、apacheの再起動#9の後に、それが最終的に働いた:ここでエラーログが言うことです。
[ 'pop'](http://perldoc.perl.org/functions/pop.html)渡す必要がありますハッシュリファレンスではありません。あなたが 'my $ data = pop @ {$ data2 - > {record}}; ' –
の投稿コードの構文が正しいと思っています。取得しているエラーは構文エラーではありません。あなたが得ているエラーを提供できますか? – ikegami