Hogyan definiálunk két dimenziós hash-t bash-perl nyelvben?
Mi az a bash-perl nyelv? Perl vagy bash? Bash-ben nincsenek több dimenziós változók, a legkomplikáltabb változó az associative array, ahol az elemenket (value) egy cimkével (key) tudod elérni. Perl alatt ez nagyjából, de nem teljesen, megfelel a hash nevű változónak. Itt aztán bármilyen komplikált adatstruktúra könnyel létrehozható, mivel a hash által tárolt értékek lehetnek tetszőleges adatstruktúrák referenciái.
Ez egy kétdimenziós hash definiciója perl nyelven:
my %h = (
"cica" => { "mondja" => "miau", "eszik" => "eger"},
"kutya" => { "mondja" => "vau", "fajta" => "vizsla"}
);
Amikor megadjuk a cica és kutya kulcsokhoz tartozó értéket, akkor kapcsos zárójelbe írjuk egy másik hash táblát. A kapcsos zárójel azt jelenti, hogy az érték egy hashreferencia lesz.
Értékek elérése:
print $h{"kutya"};
A kiírt szövegből tudni lehet, hogy valóban a kutya kulcshoz tartozó érték valóban egy hash referencia.
print $h{"kutya"}{"fajta"}
Itt megkapjuk a vizslát. Itt először kiválasztjuk a hashből a kutya címkéhez tartozó hash referenciát, majd annak kiszedjük a fajta címkéhez tartozó értéket, ami a vizsla.
Persze nemcsak hash-t lehet beágyazni hash-be, hanem sort, vagy akár szubrutinra mutató referenciát, illetve a beágyazott hash-nek is lehet még összetettebb értékei is.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!