Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

surcharger la l'objet CGI

1 réponse
Avatar
cyrille
bonjour,

j'essaye de surcharger la classe CGI, afin de modifier le comportement
de la méthode self_url().
Ca ne semble pas fonctionner, car j'obtiens des comportements étranges ...

est-ce que ce code vous parrait correct :

package MyCgi ;
use CGI ;
use base qw( CGI );
sub new
{
my $class= shift ;
$class = ref($class) || $class ;
my $self = new CGI ;
bless( $self, $class );
return $self ;
}#new

merci
cyrille

-==-==-==-
... FAQ Mozilla/Netscape 7 en français : http://pascal.chevrel.free.fr
-==-==-==-

1 réponse

Avatar
jl_morel
Dans l'article <bmodfe$uf8$,
a dit...

j'essaye de surcharger la classe CGI, afin de modifier le comportement
de la méthode self_url().
Ca ne semble pas fonctionner, car j'obtiens des comportements étranges ...

est-ce que ce code vous parrait correct :

package MyCgi ;
use CGI ;
use base qw( CGI );
sub new
{
my $class= shift ;
$class = ref($class) || $class ;
my $self = new CGI ;
bless( $self, $class );
return $self ;
}#new



Vous n'avez pas à faire de méthode new pour votre classe.
Essayez en la supprimant complètement.

C'est le new du module CGI qui va être appelé et il va faire lui-même un
bless $self, 'MyCgi'
et vous obtiendrez directement un objet MyCgi avec
my $q = new MyCgi;

* Notez aussi que si vous utilisez une version de CGI.pm de version
antérieure à 2.37, les modules qui en hérite doivent être dans l'espace de
nom CGI (CGI::Truc..)

HTH

--
J-L.M.