LoginSignup
2
1

More than 5 years have passed since last update.

Perlメモ サブルーチン(関数)のリファレンスをハッシュに格納する

Last updated at Posted at 2017-01-27

jQueryでハッシュにfunction突っ込んでた癖で、文字列をキーにサブルーチンを分岐させたいと思ったら、Perlでそういう書き方をしたことがなかったことに気づいた。

Perlの場合、クラスを作るときはそういう書き方することはあるけど、べたに書くこともできるんだっけ?と思い、ぐぐってみたけど、意外とヒットしない。

試してみたら、意外と簡単にいけちゃった。

my %aaa;
$aaa{test} = sub {
    print "あひゃ";
};
&{$aaa{test}};

#出力:あひゃ

とういう今更なメモでした。

追記
引数を付けるバージョン。宣言型(「print "あひゃ"」とかの括弧を使わないSQL文みたいな記述法 )の呼び方は何故かエラーになりました。

my %aaa;
$aaa{test2} = sub {
    my ($arg1, $arg2) = @_;
    print $arg1, " + ", $arg2, " = ", $arg1 + $arg2;
};
&{$aaa{test2}}(1, 2);

#出力:1 + 2 = 3
2
1
3

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
2
1