Internetowe Bazy Danych - wykład 12 skrypcie to próba wywołania go z komendy ./nazwa_skryptu lub sama nazwa_skryptu kończy się niepowodzeniem. Wtedy najlepiej dopisać na samym końcu linii -s. Wygląda to tak:
#!/usr/bin/perl -s
Powoduje to zwykłe wywołanie jednej z funkcji dostępnych dla interpretera a mających za zadanie ułatwiać pisanie programów. Generalnie jednak w zdecydowanej większości systemów wystarczy wpisać tę linijkę na pierwszym miejscu.
Oprócz tego może zaistnieć błąd jeszcze innej natury. Niektóre starsze systemu unixowe nie akceptują po prostu zapisu !# - tzw. "notacja shebang". Rozwiązania tego problemu są różne dla różnych systemów operacyjnych.
Najprostszy program będzie więc wyglądał następująco:
#!/usr/bin/perl print "Witaj, szkoło!";
Program napisać można w zwykłym pliku tekstowym za pomocą dowolnego edytora. Można mu nadać rozszerzenie bądź nie. Następnie trzeba mu nadać atrybuty pozwalające na jego wykonywanie poleceniem "chmod u+x nazwa skryptu" lub spod trybu graficznego wywołując okno właściwości danego pliku. Uruchamiamy skrypt poleceniem:
nazwa_skryptu - gdy znajduje się w katalogu na ścieżce
. /nazwa_skryptu - gdy nie ma w katalogu na ścieżce, jest w katalogu bieżącym perl nazwa_skryptu - podajemy go po prostu jako parametr dla interpretera
W ostatnim wypadku możemy pominąć atrybuty wykonywalności dla pliku, interpreter i tak wykona zadaną czynność.
Aby ułatwić, szczególnie początkującym, programistom pisanie skryptów i ich testowanie od niedawna interpreter można wywołać z bardzo przydatną funkcją -w. Jest to funkcja ostrzegająca przed różnymi błędami, które mogły zaistnieć w skrypcie, na przykład: zmienne skalarne użyte przed przypisaniem im wartości, odwołania do niezidentyfikowanych uchwytów plików lub plików, które są otwarte tylko w trybie czytania a my próbujemy coś do nich zapisać.
Oprócz tej możliwości interpreter posiada również inne wywoływane w sposób perl -x, gdzie x to odpowiednia litera. Oto niektóre z przydatniejszych:
-c działanie podobne jak funkcji opisywanej powyżej z tą różnicą, że Perl sprawdzi składnię skryptu bez jego uruchamiania
-e linia_poleceń pozwala na wprowadzenie jednego lub więcej wierszy skryptu. Interpreter nie szuka w tym przypadku samego skryptu lecz pozwala niejako na napisanie nowego -n -p skrypt zostaje umieszczony w specjalnej pętli, która spowoduje powtarzanie skryptu dla kolejnych plików wymienionych w argumentach -P przed prawidłową kompilacją program zostaje przetworzony przez procesor C -T jest to włączenie sprawdzania zagrożeń
-u powoduje wykonanie tzw. "core dump" czyli zrzucenie ekranu po wykonaniu zadanego skryptu. Można następnie przekształcić to na plik wykonywalny za pomocą programu undump". Jest to jednak ograniczone bowiem "undump" nie jest dostępny na wszystkie platformy, na których można używać samego Perlą.
-U pozwala na wykonanie niebezpiecznych operacji
-x katalog nakazuje Perlowi wydobycie skryptu z dowolnego pliku. Bezużyteczna jego część zostaje pominięta aż do odnalezienia ciągu rozpoczynającego się od #! i zawierającego słowo perl.