If the machines have different names (assuming a normal network :o)), don't you just need to do this? (continued from ZZamboni's code)
foreach $f (@files) {
open FILE, $f or die "Error: $!";
while(<FILE>) {
chomp;
my ($k,$v)=split("=",$_,2);
# Assume dn= comes before other lines
if ($k eq "dn") {
push(@machines,$k);
$machine = $k;
} else {
push(@{$machine}{$k},$v);
}
}
close FILE;
}
In this case you would end up with almost the same effect:
@machines = ('machinename','machinename2');
${'machinename'}{'config'} = 2000;
${'machinename'}{'speed'} = 19600;
${'machinename'}{'setting'} = value1, value2, value3;
${'machinename2'}{'config'} = 2020;
${'machinename2'}{'speed'} = 19600;
${'machinename2'}{'setting'} = value1, value2, value3;
etc...
Points being:
1. do you have to name a hash?
2. is it better to have @machines?
I'm starting to wonder about this too...
|