почему #! perl находится вверху файлов .t? - PullRequest
3 голосов
/ 11 декабря 2010

Я заметил, что в начале теста perl есть #!perl, .t, насколько я знаю, вы не можете выполнить его как ./test.t, потому что это потребует, чтобы они были исполняемыми и использовали полный дорожка. Так почему же эти файлы обычно имеют это?

Ответы [ 2 ]

9 голосов
/ 11 декабря 2010
  1. Чтобы указать редакторам синтаксис, выделите файл как код Perl.
  2. По желанию, для обеспечения набора по умолчанию переключателей на perl при запуске этого файла. (См. perlrun .)

(Кроме того, в системах Unix расширение не имеет значения. Если в файле установлен бит исполнения, ОС сочтет файл программой, поэтому вы можете запустить его. Когда вы попытаетесь это сделать, ОС взглянем на первую строку, чтобы определить, с какой командой (и аргументами) вызывать программу. Однако здесь это не имеет значения, поскольку ОС не будет искать $PATH неабсолютных путей - она ​​будет искать только относительно вашего текущего каталог, поэтому #!perl не будет работать. На практике вам нужен абсолютный путь.)

2 голосов
/ 11 декабря 2010

Я ожидаю, что, несмотря на тот факт, что файлы не являются исполняемыми, и даже если бы он выполнял perl, только если бы он находился в вашем текущем каталоге, он помещается туда как «магия файла», определяя файл как Perl файл. Команда file может прочитать эти магические числа и показать вам тип каждого файла. Для этого потребуется настроить магический файл конфигурации, чтобы сопоставить его с Perl, что, по крайней мере на моем Macintosh, не типично. Однако он также служит для четкой идентификации файла как для читателей, так и для программ-редакторов. Представьте, что вы не знали, что это был тест perl, а видели только расширение .t - там не так много информации. Откройте его, альт, это определенно Perl-файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...