Leser: 22
|< 1 2 >| | 19 Einträge, 2 Seiten |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/perl use strict; use warnings; sub hello_world { my $from = shift; return "Hello World from " . $from; } sub decorate_h1 { my $sub = shift; return sub { my @args = @_; return "<h1>" . $sub->(@args) . "</h1>" }; } my $hello_headline = decorate_h1(\&hello_world); print $hello_headline->("Perl"), "\n";
1 2 3 4 5 6 7 8 9
sub real_decorate_h1 { my $sub = shift; my $subname = Sub::Identify::sub_name( $sub ); Sub::Install::reinstall_sub({ code => sub { my @args = @_; return "<h1>" . $sub->(@args) . "</h1>" }, as => $subname, }); return; }
LanX-+2008-10-08 15:13:38--ich weiß nicht hundertprozentig was Decoratoren von anderen Konstrukten mit sub_refs auszeichnet, ein Beipsiel in Python würde mir vielleicht helfen.
LanX-+2008-10-08 15:13:38--Aber hast du mir nicht Higher Order perl ans Herz gelegt?
Als ich's im Buchladen durchgeblättert habe fanden sich da zig Ansätze um Funktionen zu manipulieren, AFAIR wurde auch eine Metafunktion gebastelt die dir die Frickelarbeit abnimmt, sodass du syntaktische Einfachheit hast.
1 2 3 4 5 6 7 8 9 10
And heres a reimplementation of the Perl "grep" operator: sub mygrep (&@) { my $code = shift; my @result; foreach $_ (@_) { push(@result, $_) if &$code; } @result; }
LanX-+2008-10-08 15:34:56--Termin:
ich wollte einfach für nächsten Donnerstag einladen, Probleme?
Wahrscheinlich treffe ich Alech heut abend und kann ihn auch fragen.
LanX-+2008-10-08 15:57:22--Wegen der Möglichkeit verlängerter WEs würd ich gerne Mittwoch vorschlagen!
Deine Preferenz war Montag, oder?
LanX-+2008-10-08 15:57:22--Thema:
eventuell könnte man es sogar mit Attribuite Handlern basteln
http://perldoc.perl.org/Attribute/Handlers.html#EX...
Ronnie+2008-10-08 16:17:44--Ich schaue es mir nochmal im Detail an. Es wäre jedenfalls syntaktisch am elegantesten.
DECORATE { wrappercode } *func ;
Ronnie+2008-10-08 16:17:44--MO wäre gut. Eben gesehen das MI leider gar nicht geht, wegen Familienfeier. Zur Not also doch DO.
|< 1 2 >| | 19 Einträge, 2 Seiten |