Shift()でサブルーチン
# ref6.pl sub hellofunc { my $func = shift; return $func->("Hello!"); } hellofunc( sub { print "@_\n"; } ); # (1) hellofunc( sub { print "@_ World!\n"; } ); # (2) my $decorator = sub { return "***" . shift() . "***"; #shift()で受け取ったコードを実行できる! 知らなかった }; print hellofunc($decorator), "\n"; # (3)