↑ホーム(よかひよかとき) へ

   使用頻度大のものをコピー&ペーストで使えるよう 「覚え書」 としたものです。 参考になれば喜。 動作確認は自責で。
  JavaScript の覚え書   Javaアプレット の覚え書   Python の覚え書   Perl の覚え書
  おもちゃ箱---HTML5作品(JavaScript)、Javaアプレット作品、Python作品 を多数置いています


よかひよかときの Perl の覚え書    .
■コメント文
■小数点以下の処理
■算術演算(商、余り、大きい方、小さい方、絶対値、べき乗、平方根、指数、対数)
■乱数を発生

■for文
■繰り返し(ループ)やブロックから抜け出す

■テキスト表示
■文字列の比較
■文字列の検索
■文字列から1文字だけを抜き出す
■文字列から何文字か抜き出す
■文字列を分割する(結果を配列として返す)
■文字列の置換

■今日の日付を取得する
■現在の時刻を取得する

■ファイル読み込み(ファイルからデータを入力)


■コメント文   このページのトップへ 説明更新日
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

このページのトップへ

**********************************************************************************
Copyright(C) 2006-,YokahiYokatoki