Thread Variablenscope (7 answers)
Opened by bianca at 2013-01-09 15:34

Muffi
 2013-01-09 15:55
#164806 #164806
User since
2012-07-18
1465 Artikel
BenutzerIn
[default_avatar]
Selbst wenn %test beim Aufruf nicht mehr im Scope wäre, kann Perl Closures.
Er merkt sich, dass es in der sub verwendet wird und wirfts deshalb nicht weg.

[EDIT] Sowas funktioniert z.B.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
my %code;
{
        my %test = (
                foo => 'bar',
        );

        %code = (
                code    => sub {
                        my ($ref) = @_;
                        $test{foo} = $ref;
                },
        );
} # eigentlich endet hier der Scope für %test

# der Aufruf funktioniert aber trotzdem
$code{code}->('bar2');

Last edited: 2013-01-09 16:10:04 +0100 (CET)
1 + 1 = 10

View full thread Variablenscope