我正在寻找一个权威的人来确认或纠正我认为我知道的关于Perl脚本的shebang行中的-CSDA选项。
有关perldoc perlrun的文档,请参阅-CSDA。简略
STDIN,STDOUT和STDERR被假定在UTF-8中。-CSDA产生任何效果,必须在命令行中指定它,就像在perl -CSDA script.pl中那样。-CSDA将悄然失败,因为当遇到标准流时,标准流已经打开,@ARGV已经填充,除非在命令行中已经指定了-CSDA。-CSDA会导致perl因为这个问题而嘎嘎作响。-CSDA的脚本用于使用perl的pre-5.10应该将-CSDA从shebang行中删除,因为它从未在命令行中使用这些选项被调用(如果仅在shebang行上指定这些选项,则什么也不做)。我很想得到一些可靠的反馈,说明我以上的假设中哪些是错误的。
发布于 2011-03-18 16:23:55
不知道我有多权威,但我知道这是怎么回事。
发布于 2011-03-18 18:26:57
如果你的脚本是
#!/usr/bin/perl -CSDA然后开始使用
./script foo操作系统将启动Perl,如下所示:
/usr/bin/perl -CSDA ./script foo行为上的改变只有在错误启动脚本时才起作用,例如使用
/usr/bin/perl ./script foo修复不是要删除-CSDA,而是正确调用脚本。
https://stackoverflow.com/questions/5353194
复制相似问题