2009年9月25日星期五

[PerlChina] 起怪的问题关于switch和formline

一个奇怪的问题。
perl -e "do q/test\/testSql\/TESTSQL.pm/ or print qq/Can't do:$!/;"
testsql.pm在test/testSql下面
testsql.pm里面有switch的时候就会显示
Can't do:Bad file descriptor
 
不是use Switch;的时候
是使用switch的时候。
后来看了看一旦使用switch。这时候formline的here doc就会报错显示找不到结束串。
但实际上结束串有。
后来我将结束串后面的语句放到do{}里面,就不会出错,不知道为什么。here doc对结束串以后的语句还有要求?还是仅仅是因为formline的问题
举个简单的例子
sub createConn{
 my ($testConn)=@_;
 switch ($testConn){
 }
}
sub test{
 formline <<End;
 test
End
 do{
  $i=$i+1;
 }
}
1;
这时候使用
perl -e "do q/test\/testSql\/test.pm/ or print qq/Can't do:$!/;"不会报错
 
sub createConn{
 my ($testConn)=@_;
 switch ($testConn){
 }
}
sub test{
 my $i=1;
 formline <<End;
 test
End
  $i=$i+1;
}
1;
这个时候
perl -e "do q/test\/testSql\/test.pm/ or print qq/Can't do:$!/;"会报错
Can't do:Bad file descriptor
 
 


 


 

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: