Perl@Perlの基本を勉強するよ!


はじめに

みなさんこんにちは。のぶです。
Perlを触ることになったので、
勉強しながらメモしていくことにします。

普通のメモです!メモ!

変数の種類

スカラー変数

スカラー => 数値、文字列 単一の値
『$』を付けて宣言する

my $hensuu;

配列

『@』を付けて宣言する

my @hairetu = (0,1,2);
# 配列をそのまま出力
print @hensu;
# 要素を1つだけ取り出して出力
print $hensu[0];

要素を1つだけ取り出したいときは、その値がスカラー値になるので、『$』を付ける。(忘れそう・・)

ハッシュ

ハッシュ => 連想配列のこと
『%』を付けて宣言する

my %hassyu= ("a" => 0, "b" => 1, "c" => 2);
# ハッシュをそのまま出力
print %hassyu;
# 要素を1つだけ取り出して出力
print $hassyu{"a"};

ハッシュも配列と同じように
要素を1つだけ取り出したいときは、その値がスカラー値になるので、『$』を付ける。
指定するキーは波括弧で囲む。

比較演算子

比較演算子は数値比較と文字列比較で異なる。
数値の比較は 『 == != > = <= 』、
文字列の比較は 『 eq ne gt lt ge le 』
100%忘れるので表にしておく

数値比較 文字列比較 意味
a == b a eq b a と b は等しい
a != b a ne b a と b は等しくない
a < b a lt b a より b が大きい
a > b a gt b a より b が小さい
a <= b a le b a より b は大きいまたは等しい
a >= b a ge b a より b は小さいまたは等しい

条件分岐

if文の書き方

my $a = 10;
my $b = 20;

# 普通の書き方
if($a == $b) {
  print "a と b は等しい\n";
}
elsif($a < $b) {
  print "a より b は小さい\n";
}
# 出力結果
# a より b は小さい

# 参考演算子
my $c = 10;
my $d = 10;
my $e = ($c == $d) ? "c と d は等しい\n" : "c と d は等しくない\n";
print $e;

# 出力結果
# c と d は等しい

else if 文は elsif と書く。(慣れない・・)

配列のループ処理

my @hairetu = (0,1,2,3,4,5);

foreach my $a (@hairetu) {
  print $a;
}
print "\n";

foreach (@hairetu) {
  print $_;
}
print "\n";

for (@hairetu) {
  print $_;
}
print "\n";

# 出力結果は全部一緒
# 012345
# 012345
# 012345

foreach文とfor文は大体一緒で同じような使い方が出来る。
『$_』という変数に自動的に出力を格納する。

ハッシュのループ処理

my %hassyu = ("a" => 0, "b" => 1, "c" => 2, "d" => 3);

foreach my $key(keys(%hassyu)) {
    print $hassyu{$key} . "\n";
}

# 出力結果
# 2
# 0
# 1
# 3

keysでハッシュのキーを引っ張ってきて
出力時に引っ張ってきたキーを指定して出力。
結果は配列もハッシュも順不同。

おわりに

初歩的なことをメモしていきましたが
これ以外にもPerl特有の書き方だったり、処理の動きだったり
覚えなきゃいけないことがたくさんあります。

ハッシュのリファレンスとかなんだろ・・・笑

ドットインストールで一通り勉強を終えたので、これから本読みです。

以上。ありがとうございました。

参考にしたサイト

1件のコメント

Leave a Comment.