|
| |||||||||||||||||||||||
|
4.1 Zmienne.W Perlu korzystanie ze zmiennych zostało maksymalnie uproszczone. Nie trzeba ich tu w żaden specjalny sposób deklarować. Do wszelkich zmiennych skalarnych odwołujemy się umieszczając przed ich nazwą znak dolara. Przypisanie zmiennej $a wartości liczbowej 123 będzie miało postać: $a = 123; Aby przypisać zmiennej odpowiednią wartość łańcuchową, napiszemy pamiętając o apostrofach: $a = 'xxx'; Wypisywaliśmy już zwykły tekst. Teraz pozostaje tę samą czynność powtórzyć ze zmiennymi. Duże znaczenie mają użyte apostrofy.
$a = 'jeden';
$b = 'dwa';
$c = 'trzy';
print $a.' - '.$b.' - '.$c; # wypisze:
# jeden - dwa
# - trzy
print '$a - $b - $c'; # wypisze:
# $a - $b - $c
print "$a - $b - $c"; # wypisze:
# jeden - dwa
# - trzy
Tekst zawarty w pojedynczym apostrofie jest traktowany jak zwykły ciąg znaków. Tekst zawarty w podwójnym apostrofie może zawierać nazwy zmiennych, które zostaną podmienione na ich wartości, jak również specjalne znaki, np. \t (tabulator), \n (nowa linia). Kompilator rozróżnia wielkie i małe litery ($A to nie to samo co $a). Nazwy zmiennych dobierane są dowolnie. Mogą nimi być dowolne kobinacje liter i cyfr (poza kilkoma wyjątkami, np. $_) o nieograniczonej długości. 4.2 Tablice zmiennych.Szerokie zastosowanie w programowaniu znajdują z pewnością tablice zmiennych. Duża wygoda ich użycia w Perlu wynika m.in. z tego, że nie posiadają one określonych rozmiarów, rosną w miarę potrzeb. Aby stworzyć tablicę i zapisać w niej wartości, napiszemy:
@imiona = ("kazik", "tomek", "marek");
Z tak przygotowanej tablicy możemy pobierać poszczególne elementy, a także je zapisywać. Należy pamiętać, że pola tablicy są numerowane począwszy od zera.
$imiona[0] # tak przedstawiany
# jest pierwszy
# element tablicy
$imiona[1] = 'zyzio'; # tak zapisujemy do
# drugiego pola
# tablicy
Każdy element tablicy to zwykła zmienna skalarna, dlatego w celu odwołania się do niej używamy znaku dolara a nie "małpki". W ten sposób dodajemy do tablicy nowe elementy:
push(@imiona, "kasia"); # dodanie
# kolejnego
# czwartego
# elementu
# do
# tablicy
# @imiona
push(@imiona, "kasia", "małgosia") # dodanie
# dwóch
# nowych
# elementów
# na raz
@damy = ("kasia", "małgosia");
push(@imiona, @damy); # dodanie
# dwóch
# tablic
# do
# siebie
Tak usuwamy ostatni element tablicy i jednocześnie go zwracamy:
$a = pop(@imiona); # $a będzie zawierać
# wartość ostatniego,
# usuniętego elementu
# tablicy @imiona
Możliwe jest przyporządkowywanie zmiennym skalarnym tablic. Znowu należy zwrócić uwagę na użycie apostrofów.
$a = @imiona; # zmienna $a będzie zawierać
# liczbę elementów tablicy
$a = "@imiona"; # zmienna $a będzie
# łańcuchem składającym się
# z kolejnych elementów
# tablicy @imiona
# oddzielonych spacjami
Numer ostatniego elementu tablicy otrzymujemy dzięki zastosowaniu zapisu: $#imiona Możliwe jest ustalanie spodziewanych wielkości tablic przez przypisywanie odpowiednich wartości powyższej zmiennej. Ma to na celu przyspieszenie działania programu. Pozostała jeszcze kwestia wypisywania zawartości tablic:
print @imiona; # wypisuje elementy
# tablicy jednym ciągiem
print "@imiona"; # wypisuje elementy,
# oddziela je od siebie
# spacjami
print @imiona.""; # wypisuje ilość
# elementów tablicy
4.3 Tablica @ARGV.W specjalnej tablicy o nazwie @ARGV zapisane są wszystkie opcje podane w linii komend przy starcie programu. Aby wypisać pierwszą opcję, napiszemy:
print("$ARGV[0]");
Następujący program zakończy swe działanie odpowiednim komunikatem, jeśli okaże się, iż został wywołany z jakimikolwiek parametrami:
if (@ARGV)
{
print "Program wywołano z parametrami!\n";
}
4.4 Tablice asocjacyjne.Poza przedstawionymi już zwykłymi tablicami istnieją jeszcze tablice asocjacyjne. Zasadniczą różnicą między zwykłą tablicą a tablicą asocjacyjną jest sposób odwoływania się do poszczególnych ich elementów: w zwykłej tablicy każdemu elementowi odpowiadała liczba, podczas gdy w tablicach asocjacyjnych każdemu elementowi będzie przyporządkowany łańcuch. W odróżnieniu od zwykłych tablic przed nazwami tablic asocjacyjnych stawiamy znak procenta. Przykładowo stworzymy tablicę asocjacyjną zawierającą liczby oznaczające wiek danych osób:
%wiek = ("kazik", 17,
"tomek", 20,
"marek", 31);
Aby odczytać interesującą nas informacje z wcześniej przygotowanej tablicy asocjacyjnej, napiszemy:
$wiek{"marek"} # to wyrażenie zwróci
# wartość 31
Ponieważ w polach tablicy asocjacyjnej zapisane są zmienne skalarne, do ich odczytu używamy znaku dolara. Możliwe jest konwertowanie zwykłych tablic do tablic asocjacyjnych i na odwrót:
@tab = %wiek; # od tej chwili
# @tab = ("marek", "31",
# "tomek", "20", "kazik",
# "17");
%nowa = @tab # od tej chwili %nowa
# jest taką samą tablicą
# jak %wiek
4.5 Tablica asocjacyjna %ENV.Program wykonywany w systemie UN*X może odwoływać się do zmiennych środowiskowych, które często zawierają przydatne informacje. (Aby dowiedzieć się o aktualnie ustalonych zmiennych środowiskowych, proszę wydać polecenie set). Perl standardowo udostępnia nam cały zestaw tych zmiennych. Są one umieszczone w tablicy asocjacyjnej o nazwie %ENV.
print "Ty jesteś $ENV{'USER'}, witam!";
# zmienna środowiskowa USER
# zawiera aktualną nazwę
# użytkownika
|
[ zajrzyj... ]
[ zajrzyj... ]
| |||||||||||||||||||||