簡短回答:您不應該在Windows上使用ActivePerl需要shebang。
看起來您使用的是ActiveState Perl(默認情況下,C:\perl64
,Strawberry使用C:\strawberry
)。儘管他們歷來是UNIX-y的東西,但ActiveState在Perl文件中解析shebang行,但只是爲了獲得解釋器標誌(例如-T
用於檢查異常),但是您沒有使用任何解釋器標誌,所以您不需要使用shebang視窗。
如果你的腳本「在Windows上沒有執行」(具體的錯誤在這裏會有幫助)沒有shebang,那麼其他的東西就是錯的。確保您的腳本具有.pl擴展名,並確保您的ActivePerl安裝已設置爲.pl文件的默認值。下面是安裝說明:
http://docs.activestate.com/activeperl/5.18/install.html
此外,根據上面的文檔:
在Windows 2000/XP/2003/Vista系統上的ActivePerl安裝必須由特權用戶只能執行。如果你安裝的ActivePerl不完整的管理員權限,會出現下列問題:... PerlScript不會創建文件關聯
在Linux方面,你也當運行腳本的可執行文件中./my-script.pl
只需要家當而不是像在perl my-script.pl
中那樣手動指定解釋器(或者,如果您需要解釋器標誌,則再次指定解釋器)。在基於Linux/UNIX的系統上,shebang的規範建議是#!/usr/bin/env perl
,以避免需要硬編碼路徑給解釋器。
據我所知'#!'是一個純UNIX的東西,例如windows只會查看文件擴展名,並不會看着'#!'來知道如何執行文件。 –
@SteffenUllrich這是正確的,你不需要在Windows上的shebang線。 – chilemagic
@Matt如果我刪除了'#!c:/ perl64/bin/perl.exe',那麼無法執行腳本。 –