Ouais... Alors en fait j'ai compris...
le code fait un truc du genre :
Code :
- if ($chaine =~ /(\d+)-(\d+)/) {
- $obj->ma_methode_qui_tue($1,$2);
- }
|
Conclusion :
- En script ca marche
- En cgi ca marche pas. ($1,$2) ne passe pas bien... pourtant si je les affichent j'ai bien les bonnes valeurs. Les valeurs de $1 et $2 se perdent...
Code :
- if ($chaine =~ /(\d+)-(\d+)/) {
- my $var1=$1;
- my $var2=$2;
- $obj->ma_methode_qui_tue($var1,$var2);
- }
|
La ca marche dans les deux cas cgi et script. En fait la methode que j'appelle n'existe pas elle est gere par AUTOLOAD:
Code :
- sub AUTOLOAD {
- my $self = shift;
- my $name = '';
- if ($AUTOLOAD =~ /^.*?::(.*)$/) {
- $name = $1;
- }
- my $hash_mode = 0;
- if ($name =~ /_hash$/i) {
- $hash_mode = 1;
- $name =~ s/_hash$//i;
- }
- if ($name =~ /_shash$/i) {
- $hash_mode = 2;
- $name =~ s/_shash$//i;
- }
- if (defined $self->{sql}->{$name}) {
- if ($name =~ /^insert/i or $name =~ /^update/i) {
- return $self->dbexecute_insert($name, @_);
- } else {
- if ($hash_mode) {
- return $self->dbexecute_hash($hash_mode,$name, @_);
- } else {
- return $self->dbexecute($name, @_);
- }
- }
- }
- }
|
J'ai l'impression que c'est ca qui fait que je perd les valeurs de $1 et $2... Mais j'ai que des suppositions pas de cetitude.
---------------
Cdl, Danjer