Schrift
[thread]7946[/thread]

Seltsame Warnung: Subroutine header redefined



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
GwenDragon
 2006-05-05 20:01
#65680 #65680
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Folgendes Codestück ist in einem Package vorhanden.

Code: (dl )
1
2
3
4
5
sub header {
my $self = shift;

$self->{ _private }->{ _cgih }->CGI::header( @_ );
}


Das Package compiliert ohne Probleme.
use strict + warnings ist eingeschaltet.

Verwende ich aber in einem Skript warnings aktiv habe und das Package use, dann gibt es folgende Meldung:
Error.pm: Subroutine header redefined at x:/wwwroot/users/test/web/cgi-bin/lib/Cgi/Error.pm line 72

Wie ist das zu umgehen?
No warnings und in einem Block?

Ich stehe gerade auf dem Schlauch.
esskar
 2006-05-05 20:15
#65681 #65681
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wie bindest du CGI.pm ein?
esskar
 2006-05-05 20:17
#65682 #65682
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
C:\Dokumente und Einstellungen\sak>perl
use CGI qw/:standard/;
use strict;
use warnings;

sub header {
}
Subroutine header redefined at - line 5.
^Z

C:\Dokumente und Einstellungen\sak>perl
use CGI qw//;
use strict;
use warnings;

sub header {
}
^Z

C:\Dokumente und Einstellungen\sak>

klar?
GwenDragon
 2006-05-05 20:23
#65683 #65683
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
esskar
 2006-05-05 20:25
#65684 #65684
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=GwenDragon,05.05.2006, 18:23]Nur mit use CGI qw( -no_xhtml );[/quote]
und das exportiert eben header in deinen namespace, welches du dann mit sub header { } wieder überschreiben tust! :/
GwenDragon
 2006-05-05 20:40
#65685 #65685
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Ich dachte das Pragma -no_xhtml setzt nur $XHTML=0 und nicht mehr.
GwenDragon
 2006-05-05 20:55
#65686 #65686
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Ah, irgendwo stand noch in einem andere Skript ein use CGI qw( :standard );.
Dann muss ja gemeckert werden.
Strat
 2006-05-05 21:35
#65687 #65687
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
irgendwie habe ich ein riesenglueck, dass ich von CGI nur das OOP-Interface verwende
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2006-05-05 21:41
#65688 #65688
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=GwenDragon,05.05.2006, 18:55]Ah, irgendwo stand noch in einem andere Skript ein use CGI qw( :standard );.
Dann muss ja gemeckert werden.[/quote]
Das ist das blöde, wenn man sich die Namespaces "vollmüllt". Deswegen würde ich mit dem Importieren von Sachen aus Modulen nur sehr sparsam sein.

Das sind dann auch so blöde Fehler, die man meist mehrere Tage vergeblich sucht *g*
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GwenDragon
 2006-05-05 21:59
#65689 #65689
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Jaja, wenn eine Module u. ä. von Funktion -> OOP umstellt und modernisiert.

Eine CGI-Kurzform wird da schnell übersehen. So schon wie es ist, wenn
header() geschrieben werden kann anstatt $cgih->header();

Perl-Programmierer sind faul, nur manchmal stellt die falsche Faulheit ihnen auch ein Bein.\n\n

<!--EDIT|GwenDragon|1146852056-->
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2006-05-05 20:01.