Perl Can';t调用方法";capture2“;论无删减参照

Perl Can';t调用方法";capture2“;论无删减参照,perl,unix,ssh,openssh,Perl,Unix,Ssh,Openssh,当传递的$var值为1但给出 如果$var=0,则无法对行A上的未禁用引用-->错误调用方法“capture2”。已解决!问题只出现在$ssh中!实际上,我忘了在特定函数中传递$ssh对象,我没有注意到这一点,因为有许多参数被传递到函数。解决了!问题只出现在$ssh中!实际上,我忘了在特定函数中传递$ssh对象,我没有注意到这一点,因为传递给函数的参数太多。这里没有足够的细节来回答。我们需要知道$ssh来自哪里。我猜它没有被正确实例化。ssh的对象作为$ssh传递给函数。在引入$var=1循环之

当传递的$var值为1但给出

如果$var=0,则无法对行A上的未禁用引用-->错误调用方法“capture2”。

已解决!问题只出现在$ssh中!实际上,我忘了在特定函数中传递$ssh对象,我没有注意到这一点,因为有许多参数被传递到函数。

解决了!问题只出现在$ssh中!实际上,我忘了在特定函数中传递$ssh对象,我没有注意到这一点,因为传递给函数的参数太多。

这里没有足够的细节来回答。我们需要知道
$ssh
来自哪里。我猜它没有被正确实例化。ssh的对象作为$ssh传递给函数。在引入$var=1循环之前,它一直工作得很好。因此,如果输入了循环,它可以正常工作,否则它给出的错误在没有剩余代码的情况下仍然无法回答。错误是说您将
$ssh
视为一个对象,实际上,它只是一个普通的(“未删除”)对象。尝试打印
ref$ssh
,您将看到它不是一个对象。正如@Sobrique所说,您需要跟踪
$ssh
来自何处以及它是如何进入那种状态的。非常感谢您的详细描述。由于您的回答提供了@DaveCross和@Sobrique!!干杯!!这里没有足够的细节来回答。我们需要知道
$ssh
来自哪里。我猜它没有被正确实例化。ssh的对象作为$ssh传递给函数。在引入$var=1循环之前,它一直工作得很好。因此,如果输入了循环,它可以正常工作,否则它给出的错误在没有剩余代码的情况下仍然无法回答。错误是说您将
$ssh
视为一个对象,实际上,它只是一个普通的(“未删除”)对象。尝试打印
ref$ssh
,您将看到它不是一个对象。正如@Sobrique所说,您需要跟踪
$ssh
来自何处以及它是如何进入那种状态的。非常感谢您的详细描述。由于您的回答提供了@DaveCross和@Sobrique!!干杯!!目前来看,这不是一个非常有用的答案。如果你能花点时间把问题写得更详细一点,那就太好了。请记住,尽管感觉可能不是这样,但堆栈溢出页面的主要目的是帮助数百个遇到你问题的类似问题的人。请通过编写一个能够帮助这些人的解决方案来感谢您所获得的帮助。实际上,我的坏@DaveCross,我忘了在特定函数中传递$ssh对象,我没有注意到这一点,因为有很多参数被传递给了函数。所以,老实说,我认为指定这样一个愚蠢的解决方案是非常愚蠢的。将立即编辑..my bad@Borodin实际上,我忘记在特定函数中传递$ssh对象,id没有注意到这一点,因为有许多参数被传递到该函数。所以,老实说,我认为指定这样一个愚蠢的解决方案是非常愚蠢的。将立即编辑..目前来看,这不是一个非常有用的答案。如果你能花点时间把问题写得更详细一点,那就太好了。请记住,尽管感觉可能不是这样,但堆栈溢出页面的主要目的是帮助数百个遇到你问题的类似问题的人。请通过编写一个能够帮助这些人的解决方案来感谢您所获得的帮助。实际上,我的坏@DaveCross,我忘了在特定函数中传递$ssh对象,我没有注意到这一点,因为有很多参数被传递给了函数。所以,老实说,我认为指定这样一个愚蠢的解决方案是非常愚蠢的。将立即编辑..my bad@Borodin实际上,我忘记在特定函数中传递$ssh对象,id没有注意到这一点,因为有许多参数被传递到该函数。所以,老实说,我认为指定这样一个愚蠢的解决方案是非常愚蠢的。将立即编辑。。
if($var ==1){
    function($host);}
#OTHER PROCESSING   
#***
#****
# ****  
$hostForSsh =$host;
my $whatever ="xyz"
my $something= $ssh->capture2(qq(/user/somePlace $whatever) );#--line A