要素にコンマを追加し、最後の要素の前に「and」を追加するサブルーチンを作成したいと考えています。たとえば、「12345」が「1、2、3、4、および 5」になるようにします。コンマを追加する方法は知っていますが、問題は結果が「1、2、3、4、および 5」であり、最後のコンマを削除する方法がわかりません。
sub commas {
my @with_commas;
foreach (@_) {
push (@with_commas, ($_, ", ")); #up to here it's fine
}
splice @with_commas, -2, 1, ("and ", $_[-1]);
@with_commas;
}
おそらくおわかりのように、コンマが追加されているため、新しい配列 (@with_commas) の最後の要素を削除し、古い配列の最後の要素 (@_、サブルーチンに渡される) を追加しようとしています。コンマを追加せずにメインプログラムから)。
これを実行すると、結果はたとえば「1、2、3、4、および 5」になり、最後にコンマが付きます。そのコンマはどこから来ているのですか?@with_commas だけがカンマを取得するはずでした。
どんな助けでも大歓迎です。