引き続き。
例によって見てるのはこの本なので基本記法くらいしか書かないかも。
さぶるーちん・・?あぁ、関数のことね!
特殊変数ってなんぞ
sub average { my @args = @_; # 引数は@_で取れる my $total = 0; foreach(@args){ $total += $_; # ループ内のそれ } return $total / scalar(@args); };
デフォルト変数_(アンダースコア)は、引数なしで関数実行したりすると勝手にコレを指定したことになる・・と。
配列.length
my @arr = qw/1 2 3 4 5/; my $length1 = scalar(@arr); # 便利といえば便利 my $length2 = $#arr + 1; # インデックスの最後が取れるのは良いけど、コメントと見分けがつかん・・
ってかインデックスか。
まあ、用途がそもそも違うか。
shift・・?
sub greet{ my $who = shift; # 引数がデフォルト変数@_に入ってるので、その先頭を取る print("Hi, $who!\n"); }; greet('Larry');
単独の引数を取るパターンは、ほとんどこうするっぽい。
printfべんりー
これが一番なるほど感があったw
foreach(sort keys %ENV){ printf("%10s : %s\n", $_, $ENV{$_}); # %10s = 右寄せで10文字 printf("%-10s : %s\n", $_, $ENV{$_}); # %-10s = 左寄せで10文字 };
Perlべんり!
JavaScriptのconsole.logで、そもそもこういう変数投げ込みログって最近まで知らんかったし・・。
=~ってなんぞ
正規表現で使う。
my $str = 'Everybody needs somebody now.'; if($str =~ /\bneeds\b/){ # 右ではなく左をチェック print('I need!'); }
/regExp/だけじゃない
/(.*?)hoge$/; # 以下でもかける m{(.*?)hoge$}; m<(.*?)hoge$>;
次に読むなら、
かな?
でももうPerlはおなかいっぱいです。
ただあとリファレンスくらいは知っときたいところ。