여기 스크립트에서 두 개의 CPAN 모듈을 사용하려고합니다. 내 코드에서 사용한 것 이외의 다른 적절한 방법이 있습니까?스크립트에서 두 개의 CPAN 모듈을 사용하는 방법
#!/usr/bin/perl -w
$host='example/cp,';
$user='usertest';
$pass='kjasdkjd';
$cmd='su -';
$stdin='jkhasdj';
#$cmd='passwd';
use Net::SSH::Perl;
my $ssh = Net::SSH::Perl->new("$host", options => [
"use_pty 1", "interactive true"]);
$ssh->login($user, $pass);
#my($stdout, $stderr, $exit) = $ssh->cmd($cmd,[$stdin]);
#$ssh->shell;
#print ("$stdout\n");
#print ("$stderr\n");
#print ("$exit\n");
use Net::SSH::Expect;
$ssh->send("passwd");
$ssh->waitfor('password:\s*\z', 1) or die "prompt 'password' not found after 1 second";
$ssh->send("frghthhyj");
$ssh->waitfor(':\s*\z', 1) or die "prompt 'New password:' not found";
$ssh->send("redhat");
$ssh->waitfor(':\s*\z', 1) or die "prompt 'Confirm new password:' not found";
$ssh->send("redhat");
내가 비록 오류 "Can't locate object method "send" via package "Net::SSH::Perl::SSH2"
를 받고있어 스크립트가 아니다 "순 :: SSH :: 펄"의 방법을 찾습니다 "예상 순 :: SSH :"방법과 관련된 "보내기" 옳은.
여기서 무엇을하고 싶은지 확실하지 않습니다. 두 개의 패키지로 동시에 하나의 참조를 축복 할 수는 없습니다. 즉, 단일 객체가 동시에 두 개의 다른 클래스에 속할 수 있습니다. – raina77ow
기본적으로 나는 펄을 사용하여 원격 머신으로 ssh를 시도하고있다. 또한 원격 머신에서 루트 액세스를 얻으려면 root로 su를해야한다. Net :: SSH :: Perl과 관련된 my ($ stdout, $ stderr, $ exit) = $ ssh-> cmd ($ cmd, [$ stdin]) "가 작동하지 않으므로"send " Net :: SSH :: Expect. 이것을 시도하기 전에 Net :: SSH :: Expect의 기능을 확인하고 싶었으므로 공식 페이지에서 사용할 수있는 기본 코드를 사용했습니다. 나는 펄에서 초보자이기 때문에 이것이 가능할 지 확신 할 수 없다. 친절하게 조언하십시오. – Karthik
Net :: SSH :: Expect를 사용하여 로그인 할 수 있습니다. 맨 페이지를 참조하십시오. – Pradeep