- 投稿日:2019-04-15T20:47:28+09:00
Perlを初めて書いてみよう!
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{"やまもと"}; #36if文
条件分岐である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触ったので、忘れないようにメモ書き的な感じで。
なんというか、クセが強すぎる…
特にハッシュ変数とかマジでハマった。
なんで宣言する時は%で、参照する時は$やねん…