如何从哈希的最后一个元素(从循环)中删除逗号?perl的

Don*_*ong 1 perl hash loops comma

我们来看一个示例代码:

foreach my $cmp_id ( sort { $a <=> $b } keys %totals )
{
    print $cmp_id . ", ";
}
Run Code Online (Sandbox Code Playgroud)

如何在没有逗号的情况下打印哈希的最后一个元素?如果可能的话,没有字符串操作(子字符串或类似的东西).

谢谢

RET*_*RET 15

除非你需要做别的事,否则你要走很长的路要走......

print join(", ", sort { $a <=> $b } keys %totals);
Run Code Online (Sandbox Code Playgroud)

join 使用作为第一个参数给出的分隔符​​连接数组,这非常适合您所追求的内容.

UPDATE

我的解决方案确实有效,您需要在问题中提供更多信息.

将键添加到数组中,并在完成后打印它们,即:

my @keys;
foreach my $cmp_id (sort { $a <=> $b } keys %totals){
    push @keys, $cmp_id;
    ... other processing
}
print join(", ", @keys);
Run Code Online (Sandbox Code Playgroud)