最近我看了CPAN上的一個模塊,該模塊附帶了一個要安裝的腳本 ,這讓我感到驚訝。將 中的腳本包含在公共CPAN中,並且如果對於將在內部CPAN服務器上發佈的 軟件包有任何不同建議,建議採用什麼方式?爲CPAN(和CorporatePAN)打包perl腳本的推薦方式是什麼?
劇本開始是這樣的:
#!/usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"[email protected]"}'
if 0; # not running under some shell
兩個問題
難道我理解正確的EVAL部分是不必要的? 安裝期間將由CPAN客戶端嵌入,並且在Windows上安裝時,它將會有很大的不同。
什麼是推薦的sh-bang線? 那會是
#!/usr/bin/env perl
而不是上面的?
實際上,'eval'是因爲'#!'[not invented](http://en.wikipedia.org/wiki/Shebang_%28Unix%29#History)直到Version 8 Unix。早期版本只是假設一個可執行文本文件必須是一個shell腳本。 – cjm 2013-04-13 19:05:40