hi,
nutze die Möglichkeiten die Perl5 bezüglich dyn. Scope bietet:
use strict;
use warnings;
local $, = "\n";
sub multipli{ 
    my $x = shift;
    sub{
        my $y = shift;
        $x * $y;
    }
}
# CODE Ref in our Scope
# es wird nur eine Ref benötigt
our $m = multipli(3);
print $m->(11), "\n";    # 33
# dynamischer Scope in Block
{
    local $m = multipli(5);
    print $m->(7), "\n"; # 35
}
# $m ist unverändert
print $m->(11), "\n";    # 33
So genügt es, mur eine Referenz im Scope our anzulegen. Nachdem der Block {} verlassen wurde, hat $m wieder seinen ursprünglichen Wert was mit local $m erreicht wurde.
MfG
 nicht angemeldet
 nicht angemeldet JürgenB
 JürgenB Orlok
 Orlok Matthias Apsel
 Matthias Apsel Rolf B
 Rolf B