15

我刚刚在 Windows 上安装了 ActivePerl,并开始学习 Perl。在我正在阅读的书中,第一个代码示例是这样的:

#!/usr/bin/perl

use 5.010;

say "Hello, world!";

由于我在 Windows 上,我想知道是否需要包含第一行?

我删除了第一行,没有它,程序运行良好。

这条线仅在 Unix 系统上使用吗?

4

3 回答 3

15

如果您希望脚本可移植到 UNIX 和 Cygwin,请保留 shebang 行。即使在操作系统不使用它来确定如何运行文件的 Windows 上,Perl 仍然会解析那里写入的开关,例如

#!/usr/bin/perl -w

默认情况下会打开警告(类似use warnings;但全局)。

于 2012-04-08T01:58:26.457 回答
7

不,不是在这种特殊情况下。类 UNIX 系统中的 shell 使用 shebang 行来定位脚本的可执行文件,脚本通常可以是任何语言。

Windows 倾向于为此目的使用文件扩展名关联。例如,它可以将所有*.pl要运行的文件与 Active Perl 可执行文件相关联。

Perl 本身扫描该行以获取标志等,因此一般来说它并不是完全没用的。

于 2012-04-08T01:59:18.183 回答
3

该行由 UNIX 系统中的 shell 使用,在 windows 中不需要,但仍然包含它并保持您的程序更具可移植性是一个好主意

于 2012-04-08T01:59:00.327 回答