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');