【发布时间】:2017-05-28 20:28:46
【问题描述】:
我有一个子程序,其中包含一些固定变量以及我在子程序中声明和使用的变量,但是当我调用这个子程序时,我无法声明它们。
例如:
sub func{
my ($firm1, $firm2, $possible) = @_;
...
if($possible eq "smth"){ # in case i passed this scalar
}
elsif($possible eq ("smth else" or undef/i_don_t_know)){ # in case i didn't passed this var, but i need it as at least undef or smth like that
}
func(bla, bla, bla); # ok
func(bla, bla); # not ok
当我尝试这样做时,我得到了一个错误
"在 test.pl 行的字符串 eq 中使用未初始化的值 $possible ……”
我该如何纠正这个问题?
【问题讨论】:
-
您的问题与声明无关。
-
如果您显示可在
use strict和use warnings下编译的代码,将会有很大帮助。 -
如果您展示的代码可以在
use strict和use warnings下编译,将会有很大帮助。编造一些甚至不是 Perl 代码的东西会让你的问题变得过于模棱两可。
标签: arrays perl subroutine