bartrad has asked for the wisdom of the Perl Monks concerning the following question:
Hi all, I have a problem I just cannot figure out. I'm reading an input line by line and matching stuff to pass into a key. The input data is as follows
dnsname1: static-route 1.1.1.1/30 next-hop 2.2.2.2 preferen +ce 200 bfd-enable tag 685 dnsname1- service-name "XYZ12345-s12345" dnsname2: static-route 3.3.3.3/30 next-hop 4.4.4.4 bfd-enab +le tag 635 dnsname2- service-name "XYZ67891-s67890"
I initially matched just on the static-route line to print it out with the dns name, but actually it would be good to also print out what service it belongs to, which appears on the line below. How would I match on both lines and pass the service-name to a variable as well that I could feed into the same key? The code is riddled with perltidy errors as I've been playing, but this is how far I got.
if (@grep) { my $hop; my $static; my $tag; my $vpna; my $dns; print GREEN "\nFound some static routes...\n", RESET; foreach my $line (@grep) { if $line ( =~ m/^(\S+):\s+static-route (\S+) next-hop (\S+)( pre +ference \d+|)( bfd-enable|) tag (\d+)/ ){ my ( $dns, $static, $hop, $tag ) = ( $1, $2, $3, $6 ); } if $line ( =~ m/^(\S+)-\s+service-name (\S+)/ ){ my ($vpna) = ( $2 ); } $results{$dns}{$vpna}{$static}{$hop} = $tag; } print Dumper \%results; for my $box ( keys %results ) { print BOLD "\n$box\n", RESET; for my $static ( keys %{ $results{$box} } ) { for my $hop ( keys %{ $results{$box}{$static} } ) { print "$static\t next-hop $hop\t"; print "tag $results{$box}{$static}{$hop}\n"; print "\n"; } } } } else { print "No static routes exist for $ip\n"; } }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Store multiple lines
by hippo (Bishop) on Feb 09, 2018 at 12:42 UTC | |
by bartrad (Beadle) on Feb 09, 2018 at 13:27 UTC | |
by poj (Abbot) on Feb 09, 2018 at 13:52 UTC | |
by hippo (Bishop) on Feb 09, 2018 at 14:14 UTC | |
Re: Store multiple lines
by tybalt89 (Monsignor) on Feb 09, 2018 at 14:59 UTC | |
Re: Store multiple lines
by johngg (Canon) on Feb 09, 2018 at 14:41 UTC | |
Re: Store multiple lines
by Anonymous Monk on Feb 09, 2018 at 13:59 UTC | |
by Anonymous Monk on Feb 09, 2018 at 19:23 UTC |
Back to
Seekers of Perl Wisdom