[("Hola", "Que pasa?")], ); my %bighash = ( english =>"> [("Hola", "Que pasa?")], ); my %bighash = ( english =>"> [("Hola", "Que pasa?")], ); my %bighash = ( english =>" />

Ichki xeshlardagi qadriyatlarga kirish muammosi

Men ikkita chuqurlikdagi xashlar ro'yxatiga kirishga harakat qilyapman. Mana mening kodim:

my %english = (
    greetings => [("Hello", "What's up?")],
);

my %spanish = (
    greetings => [("Hola", "Que pasa?")],
);

my %bighash = (
    english => %english,
    spanish => %spanish,
);

print 'English greetings: ';
if (my $array = $bighash{'english'}{'greetings'}) {
    print "\n$_" for @$array
}
else {
    print 'Fail.';
}

Biroq, if sharti har doim "noto'g'ri" deb baholanadi. Nima uchun bu?

0

1 javoblar

So'zlar

english => %english,
spanish => %spanish,

hash qiymatlari skaler bo'lishi kerak (masalan, karma mos yozuvlar) va xash emas, to'g'ri. Ushlab ko'ring

english => \%english,
spanish => \%spanish,

yoki

english => { %english },
spanish => { %spanish },

Buning o'rniga.

5
qo'shib qo'ydi
Rahmat. Bu Perlning birinchi kuni - bu g'alati bir til.
qo'shib qo'ydi muallif Adam S, manba
Bir eslatma sifatida - birinchi hal ( \% ) - zikrlarni EXISTING xeshlarga saqlaydi. Ikkinchi ( {%} ) - yangi klonlangan xeshlarga (faqat birinchi darajali klonlash, barcha tuzilmalarni chuqur ichki klonlash)
qo'shib qo'ydi muallif DVK, manba
@AdamS Barcha dasturlash tillari g'alati. Ba'zilar boshqalarga qaraganda zerikarli.
qo'shib qo'ydi muallif Brad Gilbert, manba