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