in reply to create key-value pair

Hi!
#!/usr/bin/perl # vim: sw=4 use strict; use warnings; my ($vlan, $ipaddress, $netmask); my %interfaces; # great variable name. while (<DATA>) { if (/^interface Vlan(\d+)/) { $vlan = $1; } elsif (/no ip address/) { ($vlan, $ipaddress, $netmask) = (undef, undef, undef); next; } elsif (/ip address ((\d+\.){3}\d+) ((\d+\.){3}\d)/) { ($ipaddress, $netmask) = ($1, $3); } elsif (/^!$/ && $ipaddress && $netmask) { $interfaces{$vlan}->{ip} = $ipaddress; $interfaces{$vlan}->{netmask} = $netmask; } } use Data::Dumper; print Dumper \%interfaces; __DATA__ interface Vlan1 no ip address no ip route-cache shutdown ! interface Vlan12 ip address 68.142.192.79 255.255.255.0 no ip route-cache shutdown ! interface Vlan8 ip address 68.142.192.79 255.255.255.0 no ip route-cache !
The output of this code is-
$VAR1 = { '8' => { 'ip' => '68.142.192.79', 'netmask' => '255.255.255.0' }, '12' => { 'ip' => '68.142.192.79', 'netmask' => '255.255.255.0' } };