Thread Code in Hash dynamisch erweitern
(8 answers)
Opened by bianca at 2012-07-22 19:19
Wirklich verändern lässt sich eine Codereferenz denke ich nicht ohne weiteres, aber man kann natürlich ganz einfach Closures verketten:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 use 5.012; use warnings; sub catsub { my @fs = @_; sub { map { $_->(@_) } @fs } } my %test = ( code => sub { my $input = shift; say '[original]'; if ($input eq 'h') { return 'hallo'; } }, ); $test{code} = catsub( $test{code}, sub { my $input = shift; say '[erweiterung]'; if ($input eq 's') { return 'sonne'; } }, sub { say '[nix]'; (); }, ); say $test{code}->('h'); say $test{code}->('s'); When C++ is your hammer, every problem looks like your thumb.
|