Perl::コールバックとか
引き続きリャマ本とアルパカ本から
どうも囲いの間にスペース開けたくなっちゃう。
use strict;
use warnings;use 5.010;
my $subrutine = sub {
my $name = shift;
say "My name is : $name ";};
$subrutine->("watashi");
my @names = qw( ore washi wai );
for (@names){
$subrutine->($_);
}
結果
My name is : watashi
My name is : ore
My name is : washi
My name is : wai
これはいつも通り。
関数の中で関数を実行する。コールバック的なもの。
#!/usr/bin/env perluse strict;
use warnings;
use Data::Dumper;use 5.010;
sub hello {
say "Hello";
};
sub goodbye {
# same mean
# my $hoge = shift;
# $hoge->();$_[0]->();
say "Goodbye";
};
&goodbye(\&hello);
結果
Hello
Goodbye
関数の中に関数を入れることで、
後で実行することができると。
sub hello_name {
my $name = shift;
say "Hello $name";
};&goodbye(\&hello_name("hoge"));
一つ目の関数に引数与えてそれをコールバックするのはどうやるんだろう。