0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Perlを初めて書いてみよう!

Posted at

#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触ったので、忘れないようにメモ書き的な感じで。
なんというか、クセが強すぎる…
特にハッシュ変数とかマジでハマった。
なんで宣言する時は%で、参照する時は$やねん…

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?