Не удается вызвать метод capture2 по неблагословенной ссылке

if($var ==1){
    function($host);}
#OTHER PROCESSING   
#***
#****
# ****  
$hostForSsh =$host;
my $whatever ="xyz"
my $something= $ssh->capture2(qq(/user/somePlace $whatever) );#--line A

Приведенная выше функция работает отлично, когда переданное значение $var равно 1, но выдает Невозможно вызвать метод "capture2" для неблагословенной ссылки --> ошибка в строке A, если $var = 0.


person emma    schedule 08.06.2017    source источник
comment
Здесь недостаточно подробностей, чтобы ответить. Нам нужно знать, откуда берётся $ssh. Я предполагаю, что он не создается правильно.   -  person Sobrique    schedule 08.06.2017
comment
Объект ssh передается функции как $ssh. он работал совершенно нормально, пока не был введен цикл $var =1. Итак, он отлично работает, если вводится цикл, иначе он выдает ошибку   -  person emma    schedule 08.06.2017
comment
Все еще не могу ответить без остальной части кода.   -  person Sobrique    schedule 08.06.2017
comment
Ошибка говорит о том, что вы рассматриваете $ssh как объект, на самом деле это просто обычный (неблагословенный) объект. Попробуйте напечатать ref $ssh, и вы увидите, что это не объект. Как говорит @Sobrique, вам нужно отследить, откуда берется $ssh и как он попадает в это состояние.   -  person Dave Cross    schedule 08.06.2017
comment
Большое спасибо за столь подробное описание. смог определить фактическую ошибку из-за направления, которое дал ваш ответ @DaveCross и @Sobrique!! Ура!!   -  person emma    schedule 08.06.2017


Ответы (1)


Решено! Проблема была только в $ssh! На самом деле, я забыл передать объект $ssh в конкретную функцию и не заметил этого, так как функции было передано много аргументов.

person emma    schedule 08.06.2017
comment
В нынешнем виде это не очень полезный ответ. Было бы здорово, если бы вы могли найти время, чтобы написать, в чем проблема, более подробно. - person Dave Cross; 08.06.2017
comment
Пожалуйста, помните, что, хотя это может показаться не так, основная цель страницы переполнения стека — помочь сотням людей с похожей проблемой, которые столкнутся с вашим вопросом. Пожалуйста, выразите свою благодарность за помощь, которую вы получили, написав решение, которое поможет этим людям. - person Borodin; 08.06.2017
comment
Мой плохой @DaveCross На самом деле, я забыл передать объект $ssh в конкретную функцию, и идентификатор id не заметил этого, так как функции было передано много аргументов. Так что, честно говоря, я подумал, что было бы очень глупо указывать такое глупое решение. Сразу отредактирую.. - person emma; 13.06.2017
comment
мой плохой @Borodin На самом деле, я забыл передать объект $ ssh в конкретную функцию, и идентификатор id не заметил этого, так как функции было передано много аргументов. Так что, честно говоря, я подумал, что было бы очень глупо указывать такое глупое решение. Сразу отредактирую.. - person emma; 13.06.2017