Wiersz #!/usr/bin/perl w skrypcie Perl

Bardzo część można zobaczyć, że pierwsza linijka w skrypcie Perl — to #!/usr/bin/perl.

Oto przykład bardzo prostego programu w języku Perl:

▶ Run
#!/usr/bin/perl

print 'Hello';

Jeżeli zapisz ten tekst w plik script.pl, a potem wykonać w konsoli perl script.pl, na ekranie pojawi się pasek Hello.

Najciekawsze jest to, że jeśli usunąć z pliku script.pl wiersz #!/usr/bin/perl (zostawić tylko jedną linijkę print 'Hello';) i uruchomić ten kod za pomocą perl script.pl, wynik będzie dokładnie taki sam — na ekranie pojawi się pasek Hello.

Polecenie w konsoli perl script.pl mówi, że trzeba uruchomić interpreter perl i w jako argument przekazać mu wiersz script.pl (nazwa pliku z kodem programu). Przy takim starcie zupełnie wszystko jedno, czy w pliku script.pl pierwsza linia #!/usr/bin/perl lub nie. System uruchamia perl, a ten program już postrzega tekst z pliku jako tekst program w języku Perl.

Ale zespół perl script.pl — nie jest to jedyny sposób w jaki można uruchomić skrypt Perla. Inna opcja to zrobić plik wykonywalny i uruchom go.

Weźmy ponownie tekst w którym znajduje się specjalna pierwszy wiersz:

▶ Run
#!/usr/bin/perl

print 'Hello';

Zachowamy ten tekst w plik script.pl i wykonaj w konsoli:

$ chmod a+x script.pl
$ ./script.pl
Hello

Za pomocą polecenia chmod a+x script.pl nawiązaliśmy jest twój plik flag że jest wykonywanych plikiem (executable). A dalej za pomocą polecenia ./script.pl powiedzieliśmy, że chcemy uruchomić plik script.pl, który znajduje się w bieżącym katalogu (bieżący katalog oznaczony symbolem punkt, a /— to separator między katalog i nazwę pliku).

Po uruchomieniu ./script.pl ważne jest, aby pierwsza linia w pliku była #!/usr/bin/perl. Jeśli zabijemy tę linijkę z pliku i spróbuj uruchomić go ./script.pl, to otrzymamy błąd:

$ ./script.pl
./script.pl: line 1: print: command not found

Kiedy Perl skrypt jest uruchamiany jako ./script.pl pierwszy wiersz w pliku musi być #!/usr/bin/perl.

Kiedy uruchomić wykonywalny plik z tekstem programu za pomocą ./script.pl, system jakoś musi zrozumieć czym trzeba uruchomić ten tekst programu (Mac OS i linux w tym miejscu nie nie patrzą na rozszerzenie pliku). To właśnie dla tego aby zapewnić ten zrozumienie i używane ta pierwsza linia w specjalnym formacie. Kratka, wykrzyknik, a potem pełna ścieżka do интерпретатору za pomocą którego chcesz uruchomić kod.

Jeśli nie określić w pliku wiersz #!/usr/bin/perl i wykonać kod z pomocą ./script.pl, system będzie uznać, że kod napisany w tym chelles, w którym pracujesz (np. bash) i spróbuje wykonać tekst programu w języku programowania Perl jakby ten tekst na bash.

Ten specjalny wiersz, to nie jest specyfika języka programowania Perl, a specyfika systemu. Dla innych języków programowania, też mam podobne wiersze #!/usr/bin/python, #!/usr/bin/lua itp.

Ogółem rekomendacja — pierwsza linijka w skrypcie Perl zawsze musi być #!/usr/bin/perl.

Inne artykuły