我有:
if($^O eq 'MSWin32'){
export WINDOWS=1
else{
export UNIX=1
}
=begin WINDOWS
use feature qw(switch);
=cut
=begin UNIX
use Switch;
=cut
我得到了:
语法错误在C:\ build.pl第6行,靠近" else" 错误后BEGIN不安全 - 编译在C:\ build.pl第17行中止。
答案 0 :(得分:8)
在Perl程序中包含bourne shell命令......不太可能正常工作。
if ($^O eq 'MSWin32') {
$ENV{WINDOWS}=1;
}else{
$ENV{UNIX}=1;
}
我不明白接下来的内容。然后,您将代码标记为文档,但这似乎并不是您要执行的操作。您似乎正在尝试执行以下操作:
use if $^O eq 'MSWin32', 'feature', qw( switch );
use if $^O ne 'MSWin32', 'Switch';
但这没有任何意义。交换机功能和交换机模块绝不可互换,并且都可以在Windows和非Windows系统上运行。
答案 1 :(得分:2)
您忘记在if (...) {
之前放置一个}
来关闭else
块。即改变这一点:
else{
到此:
}else{