gpt4 book ai didi

perl - Perl 中的这个语句有什么问题?

转载 作者:行者123 更新时间:2023-12-01 07:22:18 25 4
gpt4 key购买 nike

print "$_", join(',',sort keys %$h),"\n";

它给了我以下错误:
Use of uninitialized value in string at missing_months.pl line 36.
1,10,11,12

此打印语句出现在 for 循环中,如下所示:
foreach my $num ( sort keys %hash )
{
my $h = $hash{$num};
print "$_", join(',',sort keys %$h),"\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 中的这个语句有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com