#Perlやってもらうから
ん?perl??(すっとぼけ
perlなんて触ったことも無いけれど
まぁifやforさえ出来れば、プログラミングなんてちょちょいのちょいやから!!
##甘いんだよォ!!!
お前はperlを舐めてるッ!
perlのクセの強さに苦しむが良いッ!!
###perlの宣言
まずはperlを書き始める前にperlの宣言をしなくてはいけない。
perlのファイルの1行目にperlのパスを記述し
useでモジュールの読み込みをする。
#!/usr/local/bin/perl
use strict;
use warnings;
こんな感じで書いていく。
ちなみにuse strict;
は変数の宣言をしないと怒られるようになるモジュール
use warnings;
はエラーを吐いてくれるようになるモジュール。
###変数を宣言する。
####変数の種類
perlには変数に種類がある。
$:スカラー変数(scalar variable)
@:アレイ変数(array variable)
%:ハッシュ変数(hash variable)
の三種あり、それぞれプレフィックスというものを頭につけなければならない。
####$:スカラー変数
いわゆる一般的な変数。
1つの値しか代入することが出来ない。
$suuzi = 123;
$mozi = "よんごーろく";
print $suuzi; #123
print $mozi; #よんごーろく
####@:アレイ変数。
いわゆる配列の変数。
@sosuu = (1,3,5,7,11,13,17);
@kudamono = ("りんご","みかん","れもん");
push(@sosuu,19); #最後に追加
unshift(@kudamono,("めろん","すいか")); #先頭に追加
shift(@sosuu); #先頭を削除
pop(@kudamono); #最後を削除
print @sosuu[3] #5
print @kudamono[1] #すいか
####%:ハッシュ変数
いわゆる連想配列の変数。
連想配列を宣言する時のプレフィックスは%
連想配列の中の1つを参照する時のプレフィックスは$であることに注意!
%risuto = ("やまだ"=>15,"たなか"=>22,"すずき"=>29);
$risuto{"やまもと"} = 36;
print $risuto{"やまだ"}; #15
print $risuto{"やまもと"}; #36
###if文
条件分岐であるif文の書き方は一般的なプログラミング言語と一緒
…でない時がある。
$banngou = 10;
#【A】
if($banngou == 10){
print "当たり!";
}
#【B】
if($banngou eq 10){
print "当たり!";
}
【A】のコードは色んな言語で見られるが
なんとperlでは【B】の書き方でも【A】と同じ結果を得られる。
比較演算子を文字で書くことが出来る。
現代を生きるプログラマーボーイ達は視覚的に理解できる==
や!=
を使うと思うが
レジェンドである強いプログラマーおじさん達はeq
やne
と書くことがある。
ボーイ・アンド・ガールは狼狽えないように!
また
$banngou = 18;
if($banngou == 18){
print "当たり!";
}else{
print "ハズレ…";
}
のようにif文の条件に当てはまらない場合を書くことが出来る。
…が
$banngou = 24;
if($banngou == 24){
print "当たり!";
}elsif($banngou >= 20){
print "セカンドチャンス";
}else{
print "ハズレ…";
}
のように他のプログラミング言語で使われるelseif
やeles if
は使えず
elsif
と書かなければならない。
決してタイプミスなどと思わないように!
###for文
反復構文のfor文は他のプログラミング言語とほぼ同じ。
for(my $cnt = 0;$cnt < 10;$cnt++){
print "カウント".$cnt."\n";
}
変数の初期化の際にmy
をつけて変数を宣言するとスコープを制限させることが出来る。
また、反復の現在の処理をスキップするnext
や
反復そのものの処理を終了するlast
が使える。
#編集後記
入社11日目。
初めてperl触ったので、忘れないようにメモ書き的な感じで。
なんというか、クセが強すぎる…
特にハッシュ変数とかマジでハマった。
なんで宣言する時は%で、参照する時は$やねん…