以下测试是检查IP地址列表中的软件信息。 该程序按预期打印在所有IP上运行的软件版本。
现在,我想测试在所有IP上运行的软件是否相同?我该怎么做?
20160907T141846 INFO Software info of 1.1.1.1 is r-2016-08-27-03
20160907T141846 INFO Software info of 2.2.2.2 is r-2016-08-27-03
20160907T141847 INFO Software info of 3.3.3.3 is r-2016-08-27-03
20160907T141847 INFO Software info of 4.4.4.4 is r-2016-08-27-03
示例输出
$user1->password = 'testpassword1';
答案 0 :(得分:0)
这将按照您的要求进行
sub check_matching_info {
my ($self) = @_;
my $ips = $self->{queryObj}->get_machine_ip;
my %info;
for my $ip ( @$ips ) {
my $info = $self->{queryObj}->get_install_info($ip);
push @{ $info{$info} }, $ip;
}
print keys %info == 1 ? "All IPs have the same install info" : "IPs have different install info";
}
答案 1 :(得分:0)
与往常一样,一切都已经为您编写,您只需要找到它。虽然通过List::Util
可以获得核心中的一些宝石,但我们今天想要的不是核心,而是List::MoreUtils
。
use List::MoreUtils ('all') ;
sub check_versions_equal
{
my ($self)= @_ ;
my @vers= map ( $self->{queryObj}->get_install_info($_) }
@{$self->{queryObjs}->get_machine_ip ;}
return true unless @vers ; # empty list case ;
my ($v)= @vers ;
return all { $_ eq $v } @vers ;
}