使用数组元素之间的逗号打印数组的哈希值

时间:2014-03-10 21:58:56

标签: arrays perl csv hash

我正在使用

  for $fields ( sort {$a<=>$b} keys %HoA) {
       print "$fields-->@{$HoA{$fields}}\n";
   }

打印我的哈希。输出是:

0-->2132123 321321321 ABCDEFG 32 DEF ...

我想:

0-->2132123,321321321,ABCDEFG,32,DEF,...

有没有办法改变print语句给我逗号?我宁愿不使用像s/ /,/这样的东西。

1 个答案:

答案 0 :(得分:3)

使用明确的join

for $fields ( sort {$a<=>$b} keys %HoA) {
    print "$fields-->" . join (',', @{$HoA{$fields}}) . "\n";
}

或根据perlvar

本地化$ LIST_SEPARATOR的版本
for $fields ( sort {$a<=>$b} keys %HoA) {
    local $" = ',';
    print "$fields-->@{$HoA{$fields}}\n";
}