我刚刚在Windows上安装了ActivePerl,并开始学习Perl。在我正在阅读的书中,第一个代码示例如下:
#!/usr/bin/perl
use 5.010;
say "Hello, world!";
由于我在Windows上,我想知道是否需要包含第一行?
我删除了第一行,没有它,程序运行正常。
这条线只用在Unix系统上吗?
答案 0 :(得分:14)
如果您希望脚本可以移植到UNIX和Cygwin,请保留shebang行。即使在操作系统不使用它来确定如何运行文件的Windows上,Perl仍然会解析那里写的开关,例如
#!/usr/bin/perl -w
默认情况下会启用警告(例如use warnings;
但是全局)。
答案 1 :(得分:7)
不,不是在这种特殊情况下。在类UNIX系统中,shell使用shebang行来查找脚本的可执行文件,这些脚本通常可以是任何语言。
Windows倾向于为此目的使用文件扩展名关联。例如,它可以将要运行的所有*.pl
文件与Active Perl可执行文件相关联。
Perl本身将扫描该行以获取标志等,所以一般来说它并非完全没用。
答案 2 :(得分:3)
UNIX系统中的shell使用该行,不需要在Windows中使用,但最好还是包含它并保持程序的可移植性