Некоторые системы не распознают строку #!/usr/bin/perl
в начале сценариев, и поэтому попытка вызвать программу Perl по имени в такой системе просто передаст сценарий оболочке.Чтобы бороться с этим, переносимые программы на Perl начинаются со строки, которая, когда интерпретируется стандартной оболочкой POSIX, заставляет скрипт вместо этого передавать perl(1)
.if 0
заставляет строку игнорироваться при запуске самим Perl, а размещение ее на отдельной строке заставляет оболочки обрабатывать ее как отдельную команду, запускающую только eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
, как только она прочитана.