Internetowe Bazy Danych - wykład 12 Oprócz tablic, które może utworzyć sam programista i użytkownik w Perlu istnieją także tablice i hasze tzw. globalne. Odnoszą się one do głównego pakietu obojętnie gdzie się do nich odwołujemy. Tak więc instrukcje poniżej znaczą dokładnie to samo:
print "@INC\n"; print "@main::INC\n";
Powodują wypisanie zawartości tablicy @INC. Pierwsza z nich to wywołanie tablicy z dowolnego miejsca, druga to wywołanie konkretnie z pakietu main.
Tablic i haszy globalnych jest w sumie sześć.
@ARGV
W tablicy tej zapisane są wszystkie parametry podane w linii komend przy starcie programu. Aby wypisać pierwszy parametr trzeba napisać:
print ("$ARGV[0]");
Korzystając z tej tablicy można napisać prosty programik, który zakończy się gdy okaże się, że został wywołany z dowolnymi parametrami:
if (0ARGV)
print "Program wywołano z parametrami.\n";
Zawiera listę katalogów gdzie mają być poszukiwane skrypty Perlą przy przetwarzaniu poleceń "do wyrażenie", "reąuire" oraz "use". Najpierw przeszukuje te podane z przełącznikiem -I a później domyślne biblioteki m.in.:
/usr/local/lib/perl5 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/site_perl/$ARCH Na samym końcu przeszukuje katalog bieżący.
@F
Są tam umieszczane dane wejściowe o ile użyty został w linii polecenia przełącznik -a. Jeśli opcja ta nie została użyta to tablica ta jest praktycznie bezużyteczna.
%INC
Zawiera wpisy do wszystkich plików dołączonych przez "do" i "reąuire". Klucz to podana nazwa pliku a wartość, która zostaje zwrócona to położenie znalezionego pliku.
%ENV
Hasz ten zawiera zmienne opisujące aktualne środowisko. Wszystkie aktualnie ustalone i używane zmienne środowiskowe uzyskuje się wydając komendę "set" w shellu. Hasz ten jest bardzo przydatny i dosyć łatwo można go wykorzystać już na najprostszym poziomie programowania pisząc np. prosty program:
print "Przychodzisz z loginu $ENV{ 'USER' } "; #zmienna USER zawiera aktualną nazwę użytkownika (dla administratora - root)