全部箇条書きです。man perlintroの要点を書いています。
$_
→ デフォルトの値。なんか省略されてたらこれが指定されたことになる。
$#array
: 配列の最後のインデクス。しかし@arrayがスカラーとして評価されるときは、配列の要素数になるので配列のよう素数を知りたいときにこれを使う必要はない。
@_
→ サブルーチンに渡された引数
配列やハッシュはスカラーしか格納できない。配列の中に配列やハッシュを入れるには、それの参照を入れることになる。参照はスカラー値。 配列やハッシュをスカラー値として読むと、参照になる。
perlの比較演算子は数値用と文字列用で別々のものを使っている。==は数値用、eqは文字列用等。
<FILEHANDLE>
→ スカラー値として読むと、ファイルから一行よむ、配列として読むと、全部読む。FILEHANDLEを省略するとSTDINになる。
if ( /foo/ )
→ $_
にfoo
が含まれていれば真
if ($a =~ /foo/)
→ $a
にfoo
が含まれていれば真
s/foo/bar/;
→ $_
の中のfoo
をbar
に変える。
$a =~ s/foo/bar/;
→ $a
の中のfoo
をbar
に変える。
$a =~ s/foo/bar/g;
→ $a
の中の全てのfoo
をbar
に変える。
サブルーチンの書き方
sub log {
my $logmessage = shift;
print LOGFILE $logmessage;
}
サブルーチンへの引数は、@_で受け取る。 shiftで@_を左からもってくる。
my ($logmessage, $priority) = @_;
こういう風に受け取るのが一般的。
returnを使って値を返せる。