Perl中的这个陈述有什么问题?

Perl中的这个陈述有什么问题?,第1张

概述print "$_", join(',',sort keys %$h),"\n"; 它给我一个错误如下: Use of uninitialized value in string at missing_months.pl line 36.1,10,11,12 这个print语句出现在for循环中,如下所示: foreach my $num ( sort keys %hash ){
print "$_",join(',',sort keys %$h),"\n";

它给我一个错误如下:

Use of uninitialized value in string at missing_months.pl line 36.1,10,11,12

这个print语句出现在for循环中,如下所示:

foreach my $num ( sort keys %hash ){        my $h = $hash{$num};        print "$_","\n";}
解决方法 不需要“$_”.该行应该是:

print join (',sort {$a <=> $b} keys %$h),"\n";

虽然$_被视为for和foreach循环中的默认迭代器(参见perlvar),但您已经将迭代器变量指定为$num.

以下是如何在一行中正确使用$_:

print join(',sort { $a <=> $b } keys %{$hash{$_}}),"\n" foreach keys %hash;

在旁注…

sort默认使用字符串比较,这意味着’10’被认为是在’2’之前.你似乎在处理几个月(也许是?),这就是为什么我使用了数字比较块{$a< => $b}.

总结

以上是内存溢出为你收集整理的Perl中的这个陈述有什么问题?全部内容,希望文章能够帮你解决Perl中的这个陈述有什么问题?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存