让我们举一个示例代码:
foreach my $cmp_id ( sort { $a <=> $b } keys %totals )
{
print $cmp_id . ", ";
}
如何在没有逗号的情况下打印哈希的最后一个元素?如果可能的话,不要使用字符串操作(子字符串或类似的东西)。
谢谢
除非您需要做其他事情,否则您将走很长的路...
print join(", ", sort { $a <=> $b } keys %totals);
join
使用作为第一个参数给出的分隔符连接一个数组,这非常适合您所追求的。
更新
我的解决方案确实有效,您需要在问题中提供更多信息。
将键添加到数组中,并在完成后打印它们,即:
my @keys;
foreach my $cmp_id (sort { $a <=> $b } keys %totals){
push @keys, $cmp_id;
... other processing
}
print join(", ", @keys);
虽然我确实更喜欢 RET 的原始建议,但最坏的情况是从字符串末尾删除“,”,使用两次斩波。
或 substr: $cmp_id = substr($cmp_id, 0, -2);