【发布时间】:2017-11-09 22:49:36
【问题描述】:
if($var ==1){
function($host);}
#OTHER PROCESSING
#***
#****
# ****
$hostForSsh =$host;
my $whatever ="xyz"
my $something= $ssh->capture2(qq(/user/somePlace $whatever) );#--line A
当传递的 $var 的值为 1 时,上面的函数运行完美,但给出 无法在 unblessed 引用上调用方法“capture2”-->如果 $var =0,则 A 行出错。
【问题讨论】:
-
这里没有足够的细节来回答。我们需要知道
$ssh来自哪里。我的猜测是它没有被正确实例化。 -
ssh 对象作为 $ssh 传递给函数。在引入 $var =1 循环之前,它工作得很好。所以,如果正在输入循环,它工作正常,否则它会给出错误
-
如果没有剩下的代码仍然无法回答。
-
错误是说您将
$ssh视为一个对象,它实际上只是一个普通的(“unblessed”)对象。尝试打印ref $ssh,你会发现它不是一个对象。正如@Sobrique 所说,您需要追踪$ssh的来源以及它是如何进入该状态的。 -
非常感谢您的详细描述。由于您提供的@DaveCross 和@Sobrique 答案的方向,能够识别实际错误!干杯!!