Newsletter

Grupa MagazynyInternetowe

MagazynyInternetowe.pl

Witaj Gościu ( Zaloguj | Rejestruj )

 
Reply to this topicStart new topic

> [Perl] wyszukiwanie kluczy w hashu

MateuszM
post 26.05.2008
Post #1


Zajadły dyskutant
Ikona Grupy

Grupa: Użytkownik
Postów: 292
Dołączył: 12.04.2007
Skąd: Warszawa
Nr użytkownika: 3 218



Witam,

ponieważ nigdy nie poświęcałem Perlowi więcej uwagi niż to było potrzebne (czego trochę teraz żałuję) nie mogę sobie poradzić z jedną rzeczą w programie jaki teraz piszę.

Mianowicie chodzi o sprawdzenie czy dany klucz znajduje się w określonym hashu? Powiedzmy, że mamy następującą sytuację:
KOD
%xyz = (
    'a' => 'bla, bla, bla',
    'b' => 'tra, la, la',
    'c' => 'hi, hi, hi'
);


W jaki sposób można sprawdzić czy "a" jest kluczem (jest) albo czy "z" jest kluczem (nie jest) w %xyz?


Pozdrawiam,
MateuszM

p.s
W PHP służy do tego funkcja: array_key_exists tongue.gif
Go to the top of the page
 
+Quote Post
Deamos
post 26.05.2008
Post #2


Zajadły dyskutant
Ikona Grupy

Grupa: Użytkownik
Postów: 124
Dołączył: 14.01.2008
Skąd: Polska
Nr użytkownika: 3 490



CYTAT(MateuszM @ 26.05.2008) *
W PHP służy do tego funkcja: array_key_exists tongue.gif

W php mozna tez uzyc funkcji isset(), jakis perlowski odpowiednik?
Go to the top of the page
 
+Quote Post
MateuszM
post 26.05.2008
Post #3


Zajadły dyskutant
Ikona Grupy

Grupa: Użytkownik
Postów: 292
Dołączył: 12.04.2007
Skąd: Warszawa
Nr użytkownika: 3 218



CYTAT(Deamos @ 26.05.2008) *
W php mozna tez uzyc funkcji isset(), jakis perlowski odpowiednik?


Nie do końca jest to to samo. Nie chcę rozpisywać się na temat PHP, bo zależy mi na rozwiązaniu Perlowym ale dla ścisłości podaje link do manuala PHP array_key_exists

Może jednak ktoś wie jak to sprawdzić w Perlu? Z góry dziękuję.

Pozdrawiam,
MateuszM
Go to the top of the page
 
+Quote Post
Marcin Staniszcz...
post 27.05.2008
Post #4


Zajadły dyskutant
Ikona Grupy

Grupa: Redaktor
Postów: 311
Dołączył: 14.06.2005
Nr użytkownika: 19



To ja jednak nie an temat, ale... W PHP isset robi w przypadku tabel właściwie to samo co array_key_exist tylko ?nieco? szybciej;-) Poczytaj komentarze w podanym przez Ciebie linku do dokumentacji.
I żeby nie było tak zupełnie nie na temat, pewnie o to Ci chodzi http://perl.active-venture.com/pod/func/exists.html lub tu http://www.devshed.com/c/a/Perl/Array-Mani...tion-in-Perl/6/.


--------------------
Magazyn Internet - Internet Maker
staniszczak.pl
Go to the top of the page
 
+Quote Post
MateuszM
post 27.05.2008
Post #5


Zajadły dyskutant
Ikona Grupy

Grupa: Użytkownik
Postów: 292
Dołączył: 12.04.2007
Skąd: Warszawa
Nr użytkownika: 3 218



Bardzo dziękuję za linki na temat Perla. O to właśnie mi chodziło, teraz mogę przepisać swój skrypt w ładniejszy sposób.

Co do PHP to ja również zwracam się z prośbą o doczytanie dokumentacji bo z niej wynika właśnie, że isset i array_key_exists różnią się w swoim działaniu. Proszę szczególnie zwrócić uwagę na przykład nr 2, wkleję komentarz poniżej dla ułatwienia:
CYTAT
isset() does not return TRUE for array keys that correspond to a NULL value, while array_key_exists() does.


Zgadzam się, że to szczegół ale jednak świadczy o tym, że funkcje mają inne działanie.


Pozdrawiam,
MateuszM
Go to the top of the page
 
+Quote Post
Marcin Staniszcz...
post 27.05.2008
Post #6


Zajadły dyskutant
Ikona Grupy

Grupa: Redaktor
Postów: 311
Dołączył: 14.06.2005
Nr użytkownika: 19



CYTAT(MateuszM @ 27.05.2008) *
Co do PHP to ja również zwracam się z prośbą o doczytanie dokumentacji bo z niej wynika właśnie, że isset i array_key_exists różnią się w swoim działaniu. Proszę szczególnie zwrócić uwagę na przykład nr 2, wkleję komentarz poniżej dla ułatwienia:


Zgadzam się, że to szczegół ale jednak świadczy o tym, że funkcje mają inne działanie.


Przyznaje rację, jednak przechowywanie w tabeli NULL-i nie zdarza się często;-) Więc może inaczej – w większości przypadków dają ten sam efekt:-)
A często w przypadku gdy jest tam NULL, dla nas oznacza to tyle co brak danych pod tym indeksem a wiec i brak indeksu. Owszem nie zawsze, ale w większości przypadków.


--------------------
Magazyn Internet - Internet Maker
staniszczak.pl
Go to the top of the page
 
+Quote Post
Deamos
post 27.05.2008
Post #7


Zajadły dyskutant
Ikona Grupy

Grupa: Użytkownik
Postów: 124
Dołączył: 14.01.2008
Skąd: Polska
Nr użytkownika: 3 490



Wiem o tym, isset() dziala troche inaczej od array_key_exists(), ale w pewnych przypadkach dzialaja tak samo. Osobiscie przy tablicach stosuje array_key_exists()
Go to the top of the page
 
+Quote Post
MateuszM
post 27.05.2008
Post #8


Zajadły dyskutant
Ikona Grupy

Grupa: Użytkownik
Postów: 292
Dołączył: 12.04.2007
Skąd: Warszawa
Nr użytkownika: 3 218



Jakby w PHP nie było (drobny szczegół) raz jeszcze dziękuję za pomoc odnośnie Perla. Można chyba zamknąć wątek.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 

RSS Wersja Lo-Fi Aktualny czas: 3.09.2010, 01:14