my @bonds = qw(bond2 bond3 bond4 bond6 bond7 bond8);
my %ipaddress_namei;
while (my @bonds_with_invalid_ip = grep { not exists $ipaddress_namei{
+$_}, $_ }, @bonds) {
for my $bond (@bonds_with_invalid_ip) {
printf "Enter IP address of %s\n", ucfirst($bond);
my $bond_in = <STDIN>;
chomp($bond_in);
if (is_ipv4($bond_in)) {
$ipaddress_namei{$bond} = {$bond_in};
}
}
}
Update, a little simpler, using a FIFO:
my @bonds = qw(bond2 bond3 bond4 bond6 bond7 bond8);
my %ipaddress_namei;
# Use @bonds as a FIFO
while (my $bond = shift @bonds) {
printf "Enter IP address of %s\n", ucfirst($bond);
my $bond_in = <STDIN>;
chomp($bond_in);
if (is_ipv4($bond_in)) {
$ipaddress_namei{$bond} = {$bond_in};
} else { # try again next time around
push @bonds, $bond;
}
}
-QM
--
Quantum Mechanics: The dreams stuff is made of
|