文字列の操作
chop  文字列の最後の文字を削除します。引数を省略すると$_が対象になります。
      例 chop($data); chop;

length  文字の長さを示します。
      例 $a = length($data);

tr///  文字を変換する。文字をリストで記述します。
      例 $data =~ tr/A,C,E/a,c,e/;  A,C,Eをa,c,eに変換する。

join   配列要素の間に文字列を挿入します。
      例 $data = join('&',@a);  @aの配列要素の間に&を挿入する。

index  文字列を左側から検索して最初に見つけた検索文字のバイト位置を示します。
     バイト位置は先頭から0,1,2・・・で、見つからない場合は-1になります。
     日本語は1文字当たり2バイトです。
      例 $index = index($data,'C');  $dataから文字Cの位置を示す。

substr 指定したバイト位置から、指定したバイト長の文字を取り出します。
     バイト位置は先頭から0,1,2・・・で、末尾からは-1,-2,-3・・・となります。
     バイト長を省略すると最後まで取り出します。日本語は1文字当たり2バイトです。
     substrを式の左辺に置くと取り出した文字の置換又は削除・追加ができます。
      例 $word = substr($data,2,3);  $dataのバイト位置2から3バイト分の文字を取り出す。
        $word = substr($data,2);   $dataのバイト位置2から最後までの文字を取り出す。
        $word = substr($data,-5,3); $dataの末尾からのバイト位置5から3バイト分の文字を取り出す。
        substr($data,2,3) = 'XY';   $dataのバイト位置2から3バイト分の文字をXYに置換する。
        substr($data,2,3) = '';     $dataのバイト位置2から3バイト分の文字を削除する。
        substr($data,2,0) = 'XY';   $dataのバイト位置2にXYを追加する。

sprintf 文字列や数値を指定の書式に変換します。主な書式変換記号を下記に示します。
        %d 10進数、 %f 浮動小数点
      例 $a = sprintf("%02d",$data);        $dataを0詰め2文字にする。
        $a = sprintf("%02d:%02d",$hour,$min); 例えば07:08のようになる。
        $a = sprintf("%4.1f",$data);        $dataを右詰め4文字幅、小数点以下1桁にする。

printf 文字列や数値を指定の書式に変換して出力します。書式変換はsprintfと同じです。
      例 printf("%02d",$data);  $dataを0詰め2文字で表示する。
■プログラム (sample16.cgi)
$data = 'ABCDEF'; chop($data); print "$data<br>";
$a = length($data); print "$a<br>";
$data = 'ABCDEF'; $data =~ tr/A,C,E/a,c,e/; print "$data<br>";
@a = (0,1,2,3,4,5); $data = join('&',@a); print "$data<br>";
$data = 'ABCABC'; $index = index($data,'C'); print "$index<br>";
$index = index($data,'D'); print "$index<br>";
$data = '名前は太郎です。'; $index = index($data,'太郎'); print "$index<br><br>";

$data = 'ABCDEFG';
$word = substr($data,2,3); print "$word<br>";
$word = substr($data,2); print "$word<br>";
$word = substr($data,-5,3); print "$word<br>";
substr($data,2,3) = 'XY'; print "$data<br>";
substr($data,2,3) = ''; print "$data<br>";
substr($data,2,0) = 'XY'; print "$data<br>";
$data = '名前は太郎です。'; $word = substr($data,6,4); print "$word<br><br>";

$data = 5; $a = sprintf("%02d",$data); print "$a<br>";
$hour = 7; $min = 8; $a = sprintf("%02d:%02d",$hour,$min); print "$a<br>";
$data = 5.62; $a = sprintf("%4.1f",$data); print "$a<br>";
$data = 5; printf("%02d",$data);
■実行結果
ABCDE
5
aBcDeF
0&1&2&3&4&5
2
-1
6

CDE
CDEFG
CDE
ABXYFG
ABG
ABXYG
太郎

05
07:08
5.6
05


HOME Copyright (C) CGI-design All Rights Reserved.