JavaScript/ActionScript プログラマによる Perl メモ

JavaScripter/ActionScripter 視点での Perl 入門メモ。ハマりどころというか。追記するかもしないかも。識者の方はツッコミください。

括弧省略

基本的に括弧は省略できる。演算子に見えて関数呼び出しだったりする。

print("hello");
print "hello";

$_ や @_

デフォルトという概念。

my @hoge = qw/apple banana orange/;
for (@hoge) {
      print $_ . "\n";
}

コンテキストという概念

カラコンテキストとリストコンテキスト。文脈によってスカラになったりリストになったりする仕組み。

my @hoge = qw/apple banana orange/;
my @foo = @hoge;
my $bar = @hoge;

print @foo;
print $bar;

リファレンス / 参照

サブルーチンに変数を渡す際は値渡しとなるので、リファレンスを使用する。

my @hoge = qw/apple banana orange/;
sub foo {
      my $items = shift;
            push @{$items}, "grape";
}
foo \@hoge;
print join ", ", @hoge;
#apple, banana, orange, grape

無名サブルーチン

JavaScript と変わらない。

my %hoge = (
 foo => sub {
   print "foo";
 },
);

$hoge{'foo'}();

モジュール

OOP

デバッグ

use Data::Dumper;
warn Data::Dumper $hoge;

参考書籍