1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
#!/usr/bin/perl use strict; use warnings; use 5.010; # diese Datei wird von extern aufgerufen # mittels require test_reihenfolge.pl # und dann testsub(\%over); sub testsub { my ($over) = @_; if (1==1) { if (1==1) { my @codes; # # genau hier sollen alle Deklarationen unten # in den BEGIN Blöcken stattfinden # foreach my $sub (@codes) { $sub->($over); } { if (1==1) { say "hier findet eine x-beliebige Sache statt"; BEGIN { push @codes,sub { my ($over) = @_; say "Hello1!"; }; } } if (1==1) { say "und hier auch"; BEGIN { push @codes,sub { my ($over) = @_; say "Hello2!"; }; } } # hier kommen noch viele weitere Abschnitte } } } }
Quotewas mir ja auch klar ist. Kann man das trotzdem in dieser Reihenfolge hinbekommen?Variable "@codes" will not stay shared at test_reihenfolge.pl line 26.
Variable "@codes" will not stay shared at test_reihenfolge.pl line 35.