substrを使って部分文字列をいじる

substr(文字列, 開始位置, 文字数);

substr関数は文字列の中から、一部を取り出す。文字数を省略した場合は、開始位置から末尾までを取り出す。開始位置に負の数を指定した場合は、後ろから○文字目を開始位置とする。

my $part = substr("abcdefg", 2, 3);  # cdeを返す
my $part = substr("abcdefg", 4);     # efgを返す
my $part = substr("abcdefg", -6, 3); # bcdを返す


substrの第一引数が変数の場合、指定した部分だけを置き換えることができる。

my $str = "That's bad.";
substr($str, 7, 3) = "good"; # $strは"That's good"になる。

$strは"That's good"になる。


4番目の引数として置き換え文字列を指定することもできる。

substr($str, index($str, "b"), 3, "good");

これは上と全く同じ。開始位置をindexで指定している。