Strona korzysta z plików cookies w celu realizacji usług i zgodnie z Polityką Plików Cookies.
Data publikacji: 29-04-2021 | Autor: | Grzegorz Kuczyński |
W poprzedniej części przedstawiliśmy, jak w języku Perl wypisywać i pobierać dane ze standardowego wejścia, w tym również z plików. Omawialiśmy podstawowe typy danych oraz tablice zwykłe i asocjacyjne.
Podczas omawiania tablic zwykłych wspominaliśmy o funkcjach, jakie są przeznaczone w Perlu do manipulowania nimi. Perl oferuje takie funkcje również dla tablic asocjacyjnych. Najpopularniejsze wśród nich są funkcje keys() i values(). Pierwsza z nich pobiera z tablicy wszystkie klucze i zwraca je w postaci listy. Klucze w tej liście są umieszczone w tej samej kolejność, w jakiej znajdowały się w tablicy. Natomiast druga funkcja wykonuje analogiczne zadanie z tą różnicą, że zwraca listę wartości tablicy. Działanie tych funkcji najłatwiej zaprezentować wraz z pętlą foreach, która została wręcz stworzona do iteracji po listach. W ramce Struktury kontrolne znajduje się krótki spis konstrukcji językowych używanych w języku Perl.
%t = ('key1','value1','key2','value2');
foreach $key (keys(%t)) {
print "Klucz '$key' ma wartość '$t{$key}'n";}
Klucz 'key1' ma wartość 'value1'
Klucz 'key2' ma wartość 'value2'
Funkcja values() nie może w prosty sposób odtworzyć pary klucz-wartość z tablicy asocjacyjnej, gdyż ta zwraca tylko wartości.
%t = ('key1','value1','key2','value2');
$i = 1;
foreach (values(%t)) {
print "Pozycja $i ma wartość: '$_'n";
$i++;
}
Pozycja 1 ma wartość: 'value1'
Pozycja 2 ma wartość: 'value2'
W powyższym przykładzie zaprezentowano również użycie zmiennej domyślnej $_ dla pętli foreach.
Prędzej czy później zajdzie potrzeba usunięcia jakiegoś elementu z tablicy asocjacyjnej. Służy do tego funkcja delete(). Podajemy jej wartość, którą chcemy usunąć, a ona usuwa parę klucz–wartość z tablicy. Warto również sprawdzić, czy tablica nie jest już pusta. Możemy tego dokonać za pomocą instrukcji if (%t) . Załóżmy, że chcemy usunąć pierwszy element tablicy, ale tylko pod warunkiem że nie jest on jedynym jej elementem.
[...]
Autor zawodowo zajmuje się informatyką. Jest członkiem społeczności open source, prowadzi blog nt. systemu GNU/Linux.
Pełna treść artykułu jest dostępna w papierowym wydaniu pisma.
Transmisje online zapewnia: StreamOnline