perl プロトタイプ宣言

method渡したかった。

      1 package Hoge;
      2 use strict;
      3 use base qw/Class::Accessor::Fast/;
      4
      5 sub run(&;$) {
      6     my ($method,$num ) = @_;
      7     for(1..$num){ $method->($_) }
      8 }
      9
     10 sub test {
     11     my ($self, $num) = @_;
     12     print $num."\n";
     13 }
     14
     15 1;

で、んなかんじ。

use strict;
use Hoge;

my $hoge = Hoge->new;
Hoge::run( sub { $hoge->test(shift) } , "20"  );

hoge

結局、こうなのか。

sub run(&) {

   # 事前処理

   # がんばれ
    shift->();
}

そもそも、用途がまちがってたぉ orz

http://unknownplace.org/memo/tag/perl?page=3