小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

Perlのsplitで、デリミタのないセパレート

普通、split関数は、スカラー変数の文字列をデリミタで区切って、その値を配列変数に格納します。
では、デリミタを指定しない場合『//』は、どうなるでしょうか…。

#!/usr/bin/perl -w
use strict;

$_ = "11 22 33";
my @aaa = split //;
print $aaa[0]; #1
print $aaa[1]; #1
print $aaa[2]; #スペース
print $aaa[3]; #2
print $aaa[4]; #2

1バイトづつセパレートされる。
つまり、1バイトづつのデリミタがNULLとみなされる。
ちなみに、『//』を省略するとデリミタはスペース(\t\n含む)とみなされる。

#!/usr/bin/perl -w
use strict;

$_ = "11 22 33";
my @aaa = split;
print $aaa[0]; #11
print $aaa[1]; #22
print $aaa[2]; #33