Thread Bad name after... (52 answers)
Opened by bianca at 2015-02-19 12:08

GUIfreund
 2015-02-20 19:26
#179802 #179802
User since
2011-08-08
559 Artikel
BenutzerIn
[default_avatar]
Hattest du übersehen, dass diese Struktur noch fehlerhaft ist? Wie auch immer, ich habe mich dran versucht und hätte "beinahe" eine (hoffentlich) akzeptable Lösung gefunden.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl
use strict;
use warnings;

my @dispatchtab = (
    {
        moduldatei      => 'test_extern.pl',
        aufruf_sub      => 'testsub',
    },
    {
        moduldatei      => 'test_extern2.pl',
        aufruf_sub      => 'testsub2',
    },
    # hier sind natürlich noch ganz viele
);
foreach my $ref (@dispatchtab) {
    # nur der Code innerhalb dieser Schleife darf geändert werden, sonst nichts!
    {
        package modulscope;
        require $ref->{moduldatei};
        no strict 'refs';
        &{$ref->{aufruf_sub}}('a');
    }
}

Um beim 2. Durchlauf die Meldung
Quote
Subroutine testsub redefined

wegzukriegen, habe ich noch undef $INC{modulscope}; in der Schleife angehängt, damit require nicht mehr weiß, dass das package schon geladen ist. Das hat aber leider nicht geklappt.
Gruß
GUIfreund

View full thread Bad name after...