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