为什么在.t文件的顶部有一个#!perl?

时间:2010-12-11 16:46:41

标签: perl testing

我注意到perl测试顶部有一个#!perl.t,据我所知你不能像./test.t那样执行它,因为这需要他们可执行并使用完整路径。那么为什么这些文件通常会有这个呢?

2 个答案:

答案 0 :(得分:9)

  1. 告诉编辑者将文件语法高亮显示为Perl代码。
  2. (可选)在运行此文件时向perl提供一组默认开关。 (见perlrun。)
  3. (另外,在Unix系统上,扩展名是无关紧要的。如果文件中设置了执行位,操作系统会将该文件视为程序,因此您可以运行它。当您尝试这样做时,操作系统将查看第一行以确定调用程序的命令(和参数)。但是,这与此无关,因为操作系统不会搜索$PATH非绝对路径 - 它只会搜索相对于您当前的目录,因此#!perl将无效。您希望在实践中使用绝对路径。)

答案 1 :(得分:2)

我希望尽管这些文件不是可执行的,但即使它只是在当前目录中执行perl,它也会作为“文件魔术”放在那里,将文件识别为Perl文件。 file命令可以读取这些magic numbers并显示每个文件的类型。这需要设置魔术配置文件以将其映射到Perl上,至少在我的Macintosh上,这不是典型的。但是,它也有助于向人类读者以及编辑程序清楚地识别文件。想象一下,你不知道它是一个perl测试,只看到.t扩展 - 那里没有太多信息。打开它,中提琴,它绝对是一个perl文件。