20190415のPerlに関する記事は1件です。

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{"やまもと"}; #36

if文

条件分岐であるif文の書き方は一般的なプログラミング言語と一緒
…でない時がある。

$banngou = 10;

#【A】
if($banngou == 10){
  print "当たり!";
}

#【B】
if($banngou eq 10){
  print "当たり!";
}

【A】のコードは色んな言語で見られるが
なんとperlでは【B】の書き方でも【A】と同じ結果を得られる。
比較演算子を文字で書くことが出来る。
現代を生きるプログラマーボーイ達は視覚的に理解できる==!=を使うと思うが
レジェンドである強いプログラマーおじさん達はeqneと書くことがある。
ボーイ・アンド・ガールは狼狽えないように!

また

$banngou = 18;

if($banngou == 18){
  print "当たり!";
}else{
  print "ハズレ…";
}

のようにif文の条件に当てはまらない場合を書くことが出来る。
…が

$banngou = 24;

if($banngou == 24){
  print "当たり!";
}elsif($banngou >= 20){
  print "セカンドチャンス";
}else{
  print "ハズレ…";
}

のように他のプログラミング言語で使われるelseifeles ifは使えず
elsifと書かなければならない。
決してタイプミスなどと思わないように!

for文

反復構文のfor文は他のプログラミング言語とほぼ同じ。

for(my $cnt = 0;$cnt < 10;$cnt++){
  print "カウント".$cnt."\n";
}

変数の初期化の際にmyをつけて変数を宣言するとスコープを制限させることが出来る。
また、反復の現在の処理をスキップするnext
反復そのものの処理を終了するlastが使える。

編集後記

入社11日目。
初めてperl触ったので、忘れないようにメモ書き的な感じで。
なんというか、クセが強すぎる…
特にハッシュ変数とかマジでハマった。
なんで宣言する時は%で、参照する時は$やねん…

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む