split


split /PATTERN/, EXPR, LIMIT
split /PATTERN/, EXPR
split /PATTERN/
split

 文字列を分割する関数です。
 文字列EXPRをPATTERNで指定したデリミタで分割します。分割された文字列のリスト(リストコンテキストの場合)または、分割された文字列の個数(スカラーコンテキストの場合)を返します。
 LIMITを設定すると、設定した個数までの分割を行います。
 EXPRを省略すると、$_を分割します。
 PATTERNを省略すると、空白文字(/\s+/)で分割します。
 PATTERNには正規表現を使えます。

サンプルプログラム

# 一般的な使い方
$a = 'a,bb,ccc,dddd';
@foo = split /,/, $a;
# $foo[0] = 'a', $foo[1] = 'bb', $foo[2] = 'ccc', $foo[3] = 'dddd' となる

# 一般的な使い方2
$a = '15:34:05';
($hour, $min, $sec) = split /:/, $a;
# $hour = '15', $min = '34', $sec = '05' となる

# 分割数を指定
$a = 'a,bb,ccc,ddd';
@foo = split /,/, $a, 3;
# $foo[0] = 'a', $foo[1] = 'bb', $foo[2] = 'ccc,dddd' となる

# 正規表現を使用する
$a = 'a:b,c:d';
@foo = split /:|,/, $a;
# $foo[0] = 'a', $foo[1] = 'b', $foo[2] = 'c', $foo[3] = 'd' となる

# 一文字ずつに分割する
$a = '1234';
@foo = split //, $a;
# $foo[0] = '1', $foo[1] = '2', $foo[2] = '3', $foo[3] = '4' となる

# 括弧付きPATTERN デリミタも分割文字列に入ります
$a = '1,2';
@foo = split /(,)/, $a;
# $foo[0] = '1', $foo[1] = ','; $foo[2] = '2' となる

関連項目

日付の存在チェック
CSVの値取得
文字列を1文字ずつ処理する
分割時に末尾の空フィールドを残す
文字列の分割
join関数