Scope
bearbeitet von plhi,
> Schauen wir uns einmal an, wie Julias Beispiel in Perl6 aussehen könnte:
> 
> ~~~Perl6
> 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:
~~~perl
use strict;
use warnings;
$, = " ";
sub f1{ 
    my $x = shift;
    sub{
        my $y = shift;
        $x * $y;
    }
}
my $f3 = f1(3);
my $f5 = f1(5);
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 `main`.
MfG