我是Perl编程的新手,目前正在尝试在我的代码中使用Net :: OpenSSH模块,我的新代码如下所示,任务是在远程服务器中运行多个命令,
代码如下::
---
---
foreach $s (@servers) {
my $ssh = Net::OpenSSH->new("$username\@$s", timeout=>30);
$ssh->error and die "Unable to connect: " . $ssh->error;
print "Connected to $s\n";
my $fh = $ssh->capture("df -k /home/ | tail -1") or die "Unable to run command\n";
my @df_arr = split(/\s+/, $fh);
print "$s: Disk space /home/ = $df_arr[3] \n";
my $fh1 = $ssh->capture("svmon -G -O unit=GB | grep memory") or die "Unable to run command\n";
my @sv_arr = split(/\s+/, $fh1);
print "$s: Free memory = $sv_arr[3] \n\n";
close $fh;
undef $ssh;
}
----
----
这段代码不太好,因为我打算让它更简化,尽量减少一行。
我是否可以使用任何技术或方法来简化此代码?
答案 0 :(得分:0)
我们以这种方式实现它的方式:
原始代码中有太多重复的代码,也许您可以将它们放入子程序并重复使用。