Frage zu mod_perl - warnung: subroutine redefined

21/12/2010 - 15:32 von Wolf | Report spam
Hallo,

ich schreibe seit einiger Zeit webserver scripts mit perl (5.10) für
Apache 2.2.13 with mod_perl 2.0.4

in manchen scripts sind subroutinen enthalten.

Ich bekomme nun bei MANCHEN (nicht bei allen) von diesen scripts
folgende (oder àhnliche) Warnungen im error.log:

"Subroutine perl_func redefined at
E:/ApacheWebserver/mod_perl/_cgi_ajax.pl line 13.
at E:/ApacheWebserver/mod_perl/_cgi_ajax.pl line 13"
etc...

ich kann mir einfach keinen Reim darauf machen, warum einige dieser
Scripts mit subs KEINE warnung produzieren, aber andere doch.
Meine derzeitige Lösung ist, die subs in ein modul auszulagern (oder das
script umzuschreiben), was das problem behebt, nicht mein Verstehen :|

Gruß, Wolf
foreach (
reverse split(
/\d/, "m1o2c3.4p5e6e7h8s9a0l9l8i7r6e5u4g3\@2f1l0o1w"
)) { print; }
 

Lesen sie die antworten

#1 Christian Kirsch
22/12/2010 - 09:02 | Warnen spam
Wolf schrieb:
Hallo,

ich schreibe seit einiger Zeit webserver scripts mit perl (5.10) für
Apache 2.2.13 with mod_perl 2.0.4

in manchen scripts sind subroutinen enthalten.

Ich bekomme nun bei MANCHEN (nicht bei allen) von diesen scripts
folgende (oder àhnliche) Warnungen im error.log:

"Subroutine perl_func redefined at
E:/ApacheWebserver/mod_perl/_cgi_ajax.pl line 13.
at E:/ApacheWebserver/mod_perl/_cgi_ajax.pl line 13"
etc...

ich kann mir einfach keinen Reim darauf machen, warum einige dieser
Scripts mit subs KEINE warnung produzieren, aber andere doch.



Weil der Apache die mod_perl-Skripte wieder übersetzt, wenn Du eine neue
Version installierst. In der Folge wird eben die "Subroutine perl_func"
neu definiert, vulgo: Die alte ersetzt.

Meine derzeitige Lösung ist, die subs in ein modul auszulagern (oder das
script umzuschreiben), was das problem behebt, nicht mein Verstehen :|



Wozu? Die Warnungen sind völlig irrelevant. Im übrigen wird das Thema in
der mod_perl-Dokumentation behandelt, und der zweite Treffer bei Google
(mod_perl subroutine redefined at) führt genau dort hin.

Ähnliche fragen