Bonjour
Dans mon packahe Perso::text, je crée un nouvel objet par :
sub new{
my ($class, %arg) = @_;
return bless {
_file => $arg{_file} || '',
_replace => %{$arg{replace}},
_suppress => @{$arg{suppress}},
_options => %{$arg{options}}
}, $class;
}
Dans mon programme de test, j'ai:
my $object = Perso::text->new(options =>{'ignore_roman' => 'vert'},
replace =>{}, suppress =>[]);
my %temp = $object->{_options};
print $temp{'ignore_roman'}."\n";
J'ai comme message d'erreur: "Odd number of elements in anonymous hash
at Perso/text.pm line 14"
_options contient en fait uniquement la clé "ignore_roman", mais pas sa
valeur 'vert'.
Je ne vois pas ce qui cloche dans ce que j'ai fait.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
dominix
julien wrote:
Bonjour Dans mon packahe Perso::text, je crée un nouvel objet par : sub new{ my ($class, %arg) = @_; return bless { _file => $arg{_file} || '', _replace => %{$arg{replace}}, _suppress => @{$arg{suppress}}, _options => %{$arg{options}} }, $class; }
Dans mon programme de test, j'ai: my $object = Perso::text->new(options =>{'ignore_roman' => 'vert'}, replace =>{}, suppress =>[]); my %temp = $object->{_options}; print $temp{'ignore_roman'}."n";
J'ai comme message d'erreur: "Odd number of elements in anonymous hash at Perso/text.pm line 14" _options contient en fait uniquement la clé "ignore_roman", mais pas sa valeur 'vert'.
Je ne vois pas ce qui cloche dans ce que j'ai fait.
Merci Julien
voici *ma* version des faits M l'agent
#!perl use strict; package Perso; sub new{ my ($class, %arg) = @_; return bless { _file => $arg{file} || '', _suppress => $arg{suppress}, _options => $arg{options} }, $class; }
my %temp = %{$object->{_options}}; print $temp{'ignore_roman'}."n";
print Data::Dumper::Dumper($object);
_END_
la question est : mais que donc pourquoi ce dereferencement ? (cette reponse est une invitation deguise a jouer a use strict et Data::Dumper pour comprendre ... :)
my $object = Perso->new( file => 'zoubida' , options => { 'ignore_roman' => 'vert' }, ......................^ ceci cree une reference a un hash anonyme suppress => [1, 2, 3, 4] ); .......................^ ceci cree une reference a un tableau anonyme si on les dereferences , dans quoi va t'on les conserver
my %temp = %{$object->{_options}}; ....................^^ on le fera seulement ici au besoin
bon, se fait tard la.
-- dominix
julien wrote:
Bonjour
Dans mon packahe Perso::text, je crée un nouvel objet par :
sub new{
my ($class, %arg) = @_;
return bless {
_file => $arg{_file} || '',
_replace => %{$arg{replace}},
_suppress => @{$arg{suppress}},
_options => %{$arg{options}}
}, $class;
}
Dans mon programme de test, j'ai:
my $object = Perso::text->new(options =>{'ignore_roman' => 'vert'},
replace =>{}, suppress =>[]);
my %temp = $object->{_options};
print $temp{'ignore_roman'}."n";
J'ai comme message d'erreur: "Odd number of elements in anonymous hash
at Perso/text.pm line 14"
_options contient en fait uniquement la clé "ignore_roman", mais pas
sa valeur 'vert'.
Je ne vois pas ce qui cloche dans ce que j'ai fait.
Merci
Julien
voici *ma* version des faits M l'agent
#!perl
use strict;
package Perso;
sub new{
my ($class, %arg) = @_;
return bless {
_file => $arg{file} || '',
_suppress => $arg{suppress},
_options => $arg{options}
}, $class;
}
my %temp = %{$object->{_options}};
print $temp{'ignore_roman'}."n";
print Data::Dumper::Dumper($object);
_END_
la question est : mais que donc pourquoi ce dereferencement ?
(cette reponse est une invitation deguise a jouer a use strict
et Data::Dumper pour comprendre ... :)
my $object = Perso->new(
file => 'zoubida' ,
options => { 'ignore_roman' => 'vert' },
......................^ ceci cree une reference a un hash anonyme
suppress => [1, 2, 3, 4] );
.......................^ ceci cree une reference a un tableau anonyme
si on les dereferences , dans quoi va t'on les conserver
my %temp = %{$object->{_options}};
....................^^ on le fera seulement ici au besoin
Bonjour Dans mon packahe Perso::text, je crée un nouvel objet par : sub new{ my ($class, %arg) = @_; return bless { _file => $arg{_file} || '', _replace => %{$arg{replace}}, _suppress => @{$arg{suppress}}, _options => %{$arg{options}} }, $class; }
Dans mon programme de test, j'ai: my $object = Perso::text->new(options =>{'ignore_roman' => 'vert'}, replace =>{}, suppress =>[]); my %temp = $object->{_options}; print $temp{'ignore_roman'}."n";
J'ai comme message d'erreur: "Odd number of elements in anonymous hash at Perso/text.pm line 14" _options contient en fait uniquement la clé "ignore_roman", mais pas sa valeur 'vert'.
Je ne vois pas ce qui cloche dans ce que j'ai fait.
Merci Julien
voici *ma* version des faits M l'agent
#!perl use strict; package Perso; sub new{ my ($class, %arg) = @_; return bless { _file => $arg{file} || '', _suppress => $arg{suppress}, _options => $arg{options} }, $class; }
my %temp = %{$object->{_options}}; print $temp{'ignore_roman'}."n";
print Data::Dumper::Dumper($object);
_END_
la question est : mais que donc pourquoi ce dereferencement ? (cette reponse est une invitation deguise a jouer a use strict et Data::Dumper pour comprendre ... :)
my $object = Perso->new( file => 'zoubida' , options => { 'ignore_roman' => 'vert' }, ......................^ ceci cree une reference a un hash anonyme suppress => [1, 2, 3, 4] ); .......................^ ceci cree une reference a un tableau anonyme si on les dereferences , dans quoi va t'on les conserver
my %temp = %{$object->{_options}}; ....................^^ on le fera seulement ici au besoin
bon, se fait tard la.
-- dominix
julien
dominix wrote:
voici *ma* version des faits M l'agent Merci beaucoup, j'ai encore du boulot en Perl!
Julien
dominix wrote:
voici *ma* version des faits M l'agent
Merci beaucoup, j'ai encore du boulot en Perl!