in reply to RegEx Blues
Hm, well...
If you just want to print these values out:
while (<DATA>) { chomp; print "\n$1 =" and next if /^(interface\s.+)/; print "$1" and next if /^\s+(switchport description\s.+)/; }
If getting them into a hash is the point:
my (%data, $last); while (<DATA>) { #~ print STDERR $_; chomp; if (/^(interface\s.+)/) { $last = $1; $data{$last} = ''; next; } $data{$last}=$1 and next if /^\s+(switchport description\s.+)/; } ##now print for ( sort keys %data ) { print "$_ = $data{$_}\n" }
The main problems you're having are illuminated in the posts above, so I won't belabor them. Just read perlre and perlretut again, and maybe pick up a copy of Mastering Regular Expressions (ISBN 0596002890).
|
|---|