use strict;
use warnings;
use Data::Dumper;
my (@host, $key, $value, $line, $filename);
my $rec_num = 0;
my $dirname = ".";
opendir( my $dir, $dirname) or die "cant opendir $dirname: $!";
while (defined ($filename = readdir($dir))){
next unless $filename =~ /\w+\.txt/;
print "filename: $filename \n";
my $record = {};
open( my $fh , "<", $filename);
while ($line = <$fh>){
chomp $line;
next if $line =~ /^$/;
next if $line =~ /[#{}]/;
$line =~ /^\s*(\S+)\s*(\S+)/;
$record->{$1} = $2;
}
close($fh);
push @host, $record;
$rec_num += 1;
}
closedir($dir);
print Dumper(@host);
This is the output:
filename: hosts.txt
filename: hosts1.txt
$VAR1 = {
'contacts' => 'helpdesk,admin',
'display_name' => 'whplnsweb-dr',
'register' => '1',
'use' => 'xiwizard_windowsserver_host',
'hostgroups' => 'AntiVirus',
'host_name' => 'whplnsweb-dr',
'address' => '172.28.17.115',
'alias' => 'whplnsweb-dr'
};
$VAR2 = {
'contacts' => 'helpdesk,admin',
'display_name' => '-------------',
'register' => '1',
'use' => 'test1.txt',
'hostgroups' => 'AntiVirus',
'host_name' => 'test1.txt',
'address' => '-------------',
'alias' => 'test1.txt'
};
|