join関数 - 区切り文字で配列を結合
join関数を使用すると、区切り文字を指定して配列を結合することができます。
my $joined = join(',', @array);
第1引数は、区切り文字です。この例では区切り文字としてカンマを指定しています。第2引数以降で与えられた配列に含まれる文字列が区切り文字で結合されます。
次の簡単な例を見てください。join関数の使い方の簡単な例です。配列に含まれる文字列をカンマで連結してCSVデータを作成しています。
# 配列から「Yuki,Toro,Kato」を作成 my @names = ('Yuki', 'Taro', 'Kato'); my $names_csv = join(',', @names);
区切り文字はなんでもよく、タブ文字「\t」もよく利用されます。
# 配列から「Yuki Toro Kato」を作成 my @names = ('Yuki', 'Taro', 'Kato'); my $names_csv = join("\t", @names);
文字列の中にタブが含まれていることは少ないので、カンマよりも扱いやすいことが多いです。
改行を最後につけるとタブ区切りの一行のデータが簡単に作れます。
my $line = join("\t", @names) . "\n";
区切り文字を指定して配列に分解
split関数を使えば、join関数と反対の操作、すなわち、区切り文字を指定して、配列に分解することができます。
my @names = split(/,/, "Yuki,Taro,Kato");
結合する配列にデータを追加するにはpush関数
結合するデータを追加したい場合は、push関数を使うとよいでしょう。
push @names, 'Kenta';
join関数のサンプル
join関数を使って、文字を「タブ」で連結するサンプルです。
use strict; use warnings; # 複数の文字列をタブで連結 my @animals = qw(cat dog sheep); my $line = join("\t", @animals);