hi,
Schauen wir uns einmal an, wie Julias Beispiel in Perl6 aussehen könnte:
sub f1($x) { return -> $y {$x * $y} } my &f5 = f1(5); &f5(7); # 35
Sieht furchtbar aus. In Perl 5 hingegen erklärt sich der Code von selbst:
use strict;
use warnings;
$, = " ";
sub f1{ 
    my $x = shift;
    sub{
        my $y = shift;
        $x * $y;
    }
}
# CODE Referenzen speichern
my $f3 = f1(3);
my $f5 = f1(5);
# CODErefs ausführen
print $f3->(11), $f5->(7);
Scope inbegriffen. sub erzeugt eine Referenz auf den Code und die letzte Anweisung in einer sub ist immmer der return. Der Geltungsbereich lexikalischer Variablen wird mit my festgelegt und der ganze statische Scope heißt hier package main.
Codereferenzen werden über den -> Operator ausgeführt, Argumente in ().
MfG
 nicht angemeldet
 nicht angemeldet JürgenB
 JürgenB Orlok
 Orlok Matthias Apsel
 Matthias Apsel Rolf B
 Rolf B