文字列を一文字ずつ分割する(半角のみ) - Perl

文字列を分解し、1文字ずつ処理を行いたい。半角、1バイト文字のみ(英数字など)だけなら、標準のsplit関数を用いれば良い。 splitの分割条件で何も指定しないと、1byteずつ分割してくれる。

サンプル

;#
;#文字列を1文字ずつ分割する (半角のみ)
;#

#-- 分割 --#
@char = str2char('Hello! World');

#-- 表示 --#
foreach my $c (@char){
    print "$c\n";
}

#---------------------------------------
#1byteずつ分割する
#---------------------------------------
sub str2char{
    my $str = shift;

    return(
        split(//, $str)
    );
}

実行例

H
e
l
l
o
!

W
o
r
l
d