- 関数 -
♣文字列の書式
書式の指定にはprintf関数を使う。 これはprint関数のかわりなので、そのまま画面に結果を表示させることが出来る。
$a = 25;
printf ("%04d", $a);
-------------------------------------
$a = 25;
$a = sprintf("%04d", $a); #sprintf関数は結果を変数に代入出来る
print $a;
-------------------------------------
<<結果>>
0025 #結果は同じになる
| %d | 整数(小数点のついていない整数)を10進法で表示 |
|---|---|
| %f | 実数(小数点の付いている数)を表示 |
| %s | 文字列を表示 |
♣split関数
| split関数 | 文字列を特定の文字列で分けるための関数 | split(/パターン/, 文字列); |
|---|
@a = split(/\,/, "abc\,defg\,hi"); #1行で記述する事も可能
※1文字ずつ区切りたい時は、split(//, 文字列);とする。 //の中には何も記述しない。
※かならず、splitで区切った結果を収納する場合には @ 配列に収納する。 しかし、区切る数が分かる場合、変数にそれぞれ収納する事が出来る。
($a, $b) = split(/:/, "mm:atata"); #:で区切る
print $a,"\n"; #mmとataataで区切れるので、最初の変数aにmmが、
print $b; #次にataataが収納される
-------------------------------------
<<結果>>
mm
ataata
♣foreach文
for文では、繰り返す回数をあらかじめ決めて処理を行うが、forasch文は要素の数だけ処理を行う。
配列に何個要素が入っているか不明な場合等(何回繰り返すか分からない)に使用する。
◆foreach文はfor文でも表現出来る
@a = ("春","夏","秋","冬");
foreach (@a){
print; #print $a[0];が省略されている
print " ";
}
↑
同じ意味
↓
@a = ("春","夏","秋","冬");
for ($i=0; $i<@a; $i++){
print $a[$i];
print " "; #春と夏の間に空白を入れる
}
-------------------------------------
<<結果>>
春夏秋冬
◆split関数とforeach文の併用
$a = "Hello/CGI/fain!"; #もし変数に何個区切れるデータが入っているか分からない
@list = split(/\//, $a); #そんな時はsplit関数でまず区切って・・・
foreach (@list){ #foreach文ですべて書き出す
print;
print "\n";
}
-------------------------------------
<<結果>>
Hello
CGI
fain!
♣push関数
| push関数 | 対象となる配列の最後に要素を追加する | push(配列,"追加する文字"); |
|---|
@a = ("月","火","水"); #文字を配列に格納
push(@a,"木"); #1字追加の場合
push(@a,("金","土","日")); #複数追加の場合
print @a;
-------------------------------------
<<結果>>
月火水木金土日