コード例を見てみましょう:
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の元の提案を好みますが、最悪の場合、文字列の末尾から「、」を削除し、チョップを2回使用します.
または substr: $cmp_id = substr($cmp_id, 0, -2);