in reply to Generation of Array of hashes by reading a file
Not sure about better ..
poj#!/usr/bin/perl use warnings; use strict; use Data::Dumper; my @AoH; my $rec; my $re = join '|' ,'(?<k>ether)\s+(?<v>.*$)' ,'(?<k>media):\s+(?<v>\w+)' ,'(?<k>inet)\s+(?<v>\w+\.\w+\.\w+\.\w+)' ,'(?<k>status): (?<v>\w+)' ,'(?<k>broadcast)\s+(?<v>\w+\.\w+\.\w+\.\w+)' ,'(?<k>netmask)\s+(?<v>\w+)' ,'(?<k>mtu)\s+(?<v>\d+)' ,'(?<k>prefixlen)\s+(?<v>\d+)'; open my $fh, '<', 'interface.txt' or die; while (<$fh>) { chomp; if (/^(\w+\d{1}):\s+flags=(.*?>)/){ $rec = {}; push @AoH, $rec; $rec->{'interface'} = $1; $rec->{'flags'} = $2; } while (/$re/g) { $rec->{$+{k}} = $+{v}; } } close $fh; print Dumper \@AoH;
|
|---|