【发布时间】:2013-01-28 03:50:32
【问题描述】:
关于使用的类似问题
#! /usr/bin/perl
已回答。但我想我有一个稍微不同的问题,尽管考虑到我对计算缺乏了解,可能仍然与知情人士相似。
我的 Windows 上没有 UNIX,因此无法直接测试以下内容,但是虽然在 Windows 下运行 Perl 确实不需要 shebang 行,但在 hello.pl 中使用 shebang 行,我仍然可以如果我从
移动,则不要运行该文件c:\Users\XYZ\Desktop\BegPerl
到
c:\Users\XYZ\Desktop
我的脚本存储在
c:\Users\XYZ\Desktop\BegPerl
我的 perl 文件夹存放在
c:\Strawberry\perl\bin\perl.exe
所以我的问题是:
- Windows 如何找到“perl.exe”?
- 为什么 Windows 只能在我在
c:\Users\XYZ\Desktop\BegPerl下键入perl hello.pl而在c:\Users\XYZ\Desktop下即使包含 shebang 行时才能找到 hello.pl?
关于shebang线的“目的”我得到的答案是
为类 UNIX 系统定位脚本的可执行文件
所以,我想我的两个问题的答案可能与类 UNIX 系统和 Windows 之间的区别有关。
【问题讨论】:
-
查找 windows PATH 和这个 stackoverflow 以进行设置 stackoverflow.com/questions/667471/…。
-
在 Windows 上,Perl 将检查 shebang 行中的命令行开关(例如,
#!C:/Strawberry/perl/bin/perl.exe -T -w中的-T -w)。但是 OP 是正确的,Windows 不会使用 shebang 行来确定在哪里可以找到要使用的 Perl 可执行文件。