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

"Can't use an undefined value as a HASH reference"...

2 réponses
Avatar
SL
Bonjour,

j'ai un hash de la forme :

# %segmentsBySyllabe = {
# $segment_1 => {
# "nature" => {
# $bidule_1 = 5,
# etc.
# },
# "CN" => [
# {
# $bidule_1 = 5,
# etc.
# },
# etc.
# ],
# etc.
# },
# }

donc dans ce hash "les entrées "nature" et et "CN" du hash contenu par
chaque clefs de %segmentsBySyllabe sont des "constantes", et je suis
aussi sûr qu'on peut l'être qu'elle existe effectivement dans
%segmentsBySyllabe.

Pourtant j'ai une erreur "Can't use an undefined value as a HASH
reference" sur la seconde de ces deux lignes :

my %segment_hash_temp = %{ $segmentsBySyllabe{ $segment_name } };
my %segment_hash = %{ $segment_hash_temp{ "nature" } };

Merci pour tout coup de main.

sl

2 réponses

Avatar
SL

je suis aussi sûr qu'on peut l'être qu'elle existe effectivement
dans %segmentsBySyllabe.


J'avais tort.

sl

Avatar
Jacques Caron
Salut,

On Wed, 05 Oct 2005 15:59:52 +0200, SL wrote:

my %segment_hash_temp = %{ $segmentsBySyllabe{ $segment_name } };
my %segment_hash = %{ $segment_hash_temp{ "nature" } };


A part ton problème initial qui semble être réglé, tu noteras que tu fais
deux copies de hashes. C'est peut-être ce que tu veux (faire une copie
pour la modifier sans affeter l'original), mais sinon tu y perds pas mal
en performance, il vaut alors mieux juste garder une référence sur ton
hash, et déréférencer via $ref->{clef} plutôt que $copie{clef}

Jacques.