固定文字列長ごとに文字列を分解する

back
分解する文字列長がすべて同じであれば

$str = 'abcdefghijkl';
push @char, substr $str, 0, 3, ''  while ($str);
# @char に (abc, def, ghi, jkl) が入る

上のコードで、対象文字列が3文字ずつで割り切れない場合、リストの最後に
余りの文字列も含まれる。
不要の場合は、while の条件で (length $str >= 3) 等とする。

ただし上のコードは、$str が壊れるので事前にコピーをしておくか、パターンマッチを使う。
@chars = ($str =~ /.{1,3}/g);
で3文字ごと。
余りが不要であれば、/.{3}/ と3文字限定にすれば良い。
遅いけど。

back