使用頻度大のものをコピー&ペーストで使えるよう 「覚え書」 としたものです。 参考になれば喜。 動作確認は自責で。 | ||||
JavaScript の覚え書 | Javaアプレット の覚え書 | Python の覚え書 | Perl の覚え書 | |
おもちゃ箱---HTML5作品(JavaScript)、Javaアプレット作品、Python作品 を多数置いています | ||||
■コメント文 ◆このページのトップへ | 説明 | 更新日 | |
Perl |
# |
○ その行の # より後ろに記述された部分はコメントになる。 | 2006.12.30 |
■小数点以下の処理 ◆このページのトップへ | 説明 | 更新日 | |
Perl |
(例) $a=13.64; # 正の数のとき $x=int($a+1); $x=int($a); $x=int($a+0.5); $a=-13.64; # 負の数のとき $x=int($a+1); $x=int($a); $x=int($a+0.5); |
切り上げる。$x=14 になる。 切り捨てる。$x=13 になる。 四捨五入する。$x=14 になる。 $x=-12 になる。 $x=-13 になる。 $x=-13 になる。 |
2006.12.30 |
■算術演算(商、余り、大きい方、小さい方、絶対値、べき乗、平方根、指数、対数) ◆このページのトップへ | 説明 | 更新日 | |
Perl |
(例) $a=7; $b=3; $x=$a/$b; # aをbで割った商を求める。 $x=$a%$b; # aをbで割ったときの余りを求める。 $x=abs($b-$a); # 絶対値を求める。 $c=3; $d=4; $y=$c**$d; # cのd乗を求める。 $y=sqrt($c); # cの平方根を求める。 $y=exp($c); # 自然対数の底eのc乗を求める。 $y=log($c); # cの自然対数値を求める。 |
$x=2.33333333333333 になる。 $x=1 になる。 $x=4 になる。 y=81 になる。 y=1.73205080756888 になる。 y=20.0855369231877 になる。 y=1.09861228866811 になる。 |
2006.12.30 |
■乱数を発生 ◆このページのトップへ | 説明 | 更新日 | |
Perl |
rand() (例) 1,2,3,4,5 内で乱数を得るには $x=1+int(rand(5)); |
rand(5) は、0以上5未満のランダムな小数値を返すので、int で小数点以下を切り捨てて整数にすると、0から4までの乱数を得る。それに1を加える。 |
2006.12.30 |
■for文 ◆このページのトップへ | 説明 | 更新日 | |
Perl |
(例) for($i=0; $i<=5; $i++) { } |
○ 変数には $ を付ける。 |
2006.12.30 |
■繰り返し(ループ)やブロックから抜け出す ◆このページのトップへ | 説明 | 更新日 | |
Perl |
(例) $k=0; for($i=0; $i<=10; $i++) { $k++; if($k>3) last; } |
○ for, while, do などの繰り返し処理や、 switch による分岐から抜け出す。 なお、next を用いると、繰り返しをそこでスキップし処理の先頭に戻る。 |
2006.12.30 |
■テキスト表示 ◆このページのトップへ | 説明(表示の結果) | 更新日 | |
Perl |
(例) $a=13.64; print "a=$a<br>"; print "こんにちは<br>"; |
a=13.64 こんにちは |
2006.12.30 |
■文字列の比較 ◆このページのトップへ | 説明 | 更新日 | |
Perl |
if("文字列0" eq "文字列1"){ } if("文字列0" ne "文字列1"){ } (例) $str0="おはよう"; if($str0 eq "おはよう") { print "str0 は、おはよう です。"; } else { print "str0 は、おはよう ではありません。"; } |
文字列0 と 文字列1 が同じなら{ }。 文字列0 と 文字列1 が異なるなら{ }。 |
2007.01.01 |
■文字列の検索 ◆このページのトップへ | 説明 | 更新日 | |
Perl |
index(文字列, 検索文字列, 検索開始位置); rindex(文字列, 検索文字列, 検索開始位置); (例) $str="abcdABCDabcdABCD"; $n=index($str, "ABC", 5); $n=index($str, "ABC"); $n=rindex($str, "ABC", 5); $n=rindex($str, "ABC"); |
検索開始位置から後ろへ検索し、最初に出現する位置を返す。 検索開始位置から前へ検索し、最後に出現する位置を返す。 n=12 になる。 n=4 になる。 検索開始位置を省略すると、最初から検索する。 n=4 になる。 n=12 になる。 検索開始位置を省略すると、最初から検索する。 ○ 先頭の文字が 0番目。 ○ 検索して見つからなければ -1 を返す。 |
2006.12.30 |
■文字列から1文字だけを抜き出す ◆このページのトップへ | 説明 | 更新日 | |
Perl |
substr("文字列", 開始文字の位置, 抜き出す文字の個数) (例) $data="今日は、晴れています。"; $text=substr("$data", 8, 2); |
$text には、半角で8番目から2文字(全角で4番目から1文字) ”晴” が代入される。 ( 先頭の文字は 0番目) |
2006.12.30 |
■文字列から何文字か抜き出す ◆このページのトップへ | 説明 | 更新日 | |
Perl |
substr("文字列", 開始文字の位置, 抜き出す文字の個数) (例) $data="今日は、晴れています。"; $text=substr("$data", 8, 6); |
$text には、半角で8番目から6文字(全角で4番目から3文字) ”晴れて” が代入される。( 先頭の文字は 0番目) |
2006.12.30 |
■文字列を分割する(結果を配列として返す) ◆このページのトップへ | 説明 | 更新日 | |
Perl |
split("分割文字", "文字列") (例) $data="今日は、晴れています。"; @text=split(/、/, "$data"); |
○ 文字列が ”、” で分割され、結果を配列にして返す。結果として $text[0]="今日は"; $text[1]="晴れています。"; になっている。 |
2006.12.30 |
■文字列の置換 ◆このページのトップへ | 説明 | 更新日 | |
Perl |
(例) $str="abcdABCDabcdABCD"; $str=~s/ABC/12/g; $str="abcdABCDabcdABCD"; $str=~s/ABC/12/; |
str の中のすべての ”ABC” を ”12” に置き換える。その結果 str="abcd12Dabcd12D" になる。 str の中の最初の ”ABC” を ”12” に置き換える。その結果 str="abcd12DabcdABCD" になる。 |
2006.12.30 |
■今日の日付を取得する ◆このページのトップへ | 説明 | 更新日 | |
Perl |
(例) $ENV{'TZ'} = "JST-9"; ($sec,$min,$hour,$day,$month,$year,$wday) = localtime(time); # 日時の取得 $date = sprintf("%04d-%02d-%02d", 1900 + $year, $month + 1, $day); @weeks = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat'); $week = " (" . $weeks[$wday] . ") "; print "今日は $date$week です。"; |
○ このまま使うと 今日は 2006-12-30 (Sat) です。 のようになる。 |
2006.12.30 |
■現在の時刻を取得する ◆このページのトップへ | 説明 | 更新日 | |
Perl |
(例) $ENV{'TZ'} = "JST-9"; ($sec,$min,$hour,$day,$month,$year,$wday) = localtime(time); $time = sprintf("%02d:%02d:%02d", $hour, $min, $sec); print "現在 $time です。"; |
○ このまま使うと 現在 16:13:44 です。 のようになる。 |
2006.12.30 |
■ファイル読み込み(ファイルからデータを入力) ◆このページのトップへ | 更新日 | |
Perl |
(例:私のよく使うやり方) 別ファイルとして、データを記述した datafile.txt というファイルを用意しておく。例えば、 1;太郎;国語;78;算数;68; 2;次郎;国語;86;算数;85; 一方 open(IN, "datafile.txt") || die "File 'datafile' Open Error."; flock(IN,2); # ファイルをロックする @data0=<IN>; close(IN); flock(IN,8); # ファイルロックを解除する foreach $line (@data0) { chomp($line); # 行末の改行コードを削除する @data=split(/\;/,$line); # ; で分割する } |
2006.12.30 |