if ( $output1 || $output2 =~ m/\d+\.\d+/gm ) {
That probably isn't doing what you think it is. You are testing if $output1 is true or if $output2 matches the regex. It's not entirely clear to me what you want here but this is an SSCCE which illustrates one simplistic regex matching against one of your samples but not the other. Perhaps that's what you want.
use strict; use warnings; use Test::More tests => 2; my $wontmatch = <<EOT; ====================================================================== +======== LDP Sessions ====================================================================== +======== Peer LDP Id Adj Type State Msg Sent Msg Recv Up Tim +e ---------------------------------------------------------------------- +-------- ---------------------------------------------------------------------- +-------- No Matching Entries Found ====================================================================== +======== EOT my $willmatch = <<EOT; ====================================================================== +======== LDP IPv4 Sessions ====================================================================== +======== Peer LDP Id Adj Type State Msg Sent Msg Recv Up Tim +e ---------------------------------------------------------------------- +-------- 1.1.1.1:0 Targeted Established 822443 822431 273d 15:02:2 +0 ---------------------------------------------------------------------- +-------- No. of IPv4 Sessions: 1 ====================================================================== +======== EOT my $regex = qr/\d\.\d/; unlike ($wontmatch, $regex, 'No match'); like ($willmatch, $regex, 'Good match');
In reply to Re: Regex match multiple line output
by hippo
in thread Regex match multiple line output
by bartrad
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |