OS/2下只要用:
extproc perl -S -your_switches
当作 *.cmd档案的第一行 (-S 是因 cmd.exe中其 `extproc'处理的臭虫才要的)。DOS使用者应先制作一个相对的 batch 档案然後将它以 ALTERNATIVE_SHEBANG 的方式写成程式。(更多讯息在原始码版本的 INSTALL档案里)
若安装 Activeware版的 Win95/NT 专用 Perl,它会更动 Registry的内容,把 .pl 的扩充档名与 perl直译器结合。如果你安装另一版本或是用 WinGCC建构你自己的 Win95/NT用 Perl,那你就得自己更动 Registry的内容了。
麦金塔的 perl程式将会有适当的创造者与形态 (Creator and Type),所以双击它们就会执行这些 perl 应用程式。
重要:不论你做什麽,请千万不要因为觉得沮丧,就把 perl 直译器丢到你的 cgi-bin目录下,好让你的 web 伺服器能执行你的程式。这是一个非常大的安全漏洞。花点时间想 想怎样才是正确的做法吧。
--------------------------------------------------------------------------------
我能利用命令列写出有用的程式吗?
可以。详情请看 perlrun。以下有些范例 (假设用的是标准的 Unix shell引言规则)。
#把第一栏和最後一栏相加
perl -lane 'print $F[0] + $F[-1]'
#辨别是否为文字档
perl -le 'for(@ARGV) {print if -f && -T _}' *
#移除 C程式中的说明
perl -0777 -pe 's{/\*.*?\*/}{}gs' foo.c
#让档案年轻一个月,躲避追杀的魔鬼 (daemon)
perl -e '$X=24*60*60; utime(time(),time() + 30 * $X,@ARGV)' *
#找出第一个未用的 uid
perl -le '$i++ while getpwuid($i); print $i'
#显示合理的使用说明路径 (manpath)
echo $PATH | perl -nl -072 -e '
s![^/+]*$!man!&&-d&&!$s{$_}++&&push@m,$_;END{print"@m"}'
好吧,最後一个例子事实上是「perl程式困惑化」竞赛 (Obfuscated Perl)的 参赛作品。 :-)
--------------------------------------------------------------------------------
为何一行的 perl程式无法在我的 DOS/Mac/VMS系统上运作?
问题通常出在那些系统的命令解译器对於参数的引用与 Unix shells 所作的解释不同,而後者很不幸的是这些一行 perl 的生父。在某些系统,也许你得把单引号改成双引号,但这却是你万万 不可在 Unix或 Plan9系统上作的事。你也许还得把一个 %改成 %%。
例如说:
# Unix
perl -e 'print "Hello world\n"'
# DOS,等。
perl -e "print \"Hello world\n\""
# Mac
print "Hello world\n"
(然後执行 "Myscript"或按 Shift-Command-R)
# VMS
perl -e "print ""Hello world\n"""
问题是,这些方法没有一个是完全可靠的:它都得看命令解译器的脸色。在 Unix中,前两者通常可以用。在 DOS下,两者可能都没有用。若 4DOS是命令解译器,下面此法可能比 较有希望:
perl -e "print
在 Mac 下,端视你所用的环境为何。 MacPerl所附的 shell,或是 MPW, 其所支援的参数格式有不少都蛮像 Unix shells的,除了它自在地使用 Mac 的非 ASCII字元当成控制字元。
恐怕我得说这问题并没有一般解。白话一点说,它真是一团乱。
[部份答案是由 Kenneth Albanowski 所提供的。]
--------------------------------------------------------------------------------
我得去哪里学 Perl的 CGI或是 Web程式设计呢?
就模组来说,去 CPAN抓 CGI 和 LWP 两个模组。就书本来看,参考关於书那部份里特别和 web 相关的问题。若有与 web相关的疑难杂症,像“为何我收到 500错误”或“它在命令列模式下跑得好好的,怎麽不能在浏览器下正常执行”时,请参看:
The Idiot's Guide to Solving Perl/CGI Problems, by Tom Christiansen
http://www.perl.com/perl/faq/idiots-guide.html
Frequently Asked Questions about CGI Programming, by Nick Kew
ftp://rtfm.mit.edu/pub/usenet/news.answers/www/cgi-faq
http://www3.pair.com/webthing/docs/cgi/faqs/cgifaq.shtml
Perl/CGI programming FAQ, by Shishir Gundavaram and Tom Christiansen
http://www.perl.com/perl/faq/perl-cgi-faq.html
The WWW Security FAQ, by Lincoln Stein
http://www-genome.wi.mit.edu/WWW/faqs/www-security-faq.html
World Wide Web FAQ, by Thomas Boutell
