Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re^2: Multiline match

by arunbhargav (Novice)
on May 23, 2013 at 16:27 UTC ( #1034976=note: print w/replies, xml ) Need Help??

in reply to Re: Multiline match
in thread Multiline match

patch- is a substring of patch-, hence it should match. All it wants to match is patch-, it doesnt care about gpg

Replies are listed 'Best First'.
Re^3: Multiline match
by kennethk (Abbot) on May 23, 2013 at 16:33 UTC

    hdb's point was your code boils down to 'patch-' =~ /patch-;, which is backwards from what you need. The behavior you seek would look more like

    my @array = split('\n',$output); if ( grep { 'patch-' =~ /\Q$_\E/ } @array ) { print "Match found\n"; }
    Though, as implemented, you'd have problems because of whitespace. For this case, you'd probably be better off using index.

    #11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.


Re^3: Multiline match
by LanX (Bishop) on May 23, 2013 at 16:32 UTC
    But your explanation was the other way round.

    plz try to show us a reproducible code example instead of wording.

    Cheers Rolf

    ( addicted to the Perl Programming Language)

      Sorry about the confusion, the following is the code I have been trying
      my $str = "update patch-"; my $patch = "patch-"; if ($str =~/$patch/ms) { print "Yes \n"; }
        thats the way it works

        DB<105> $str = "update\npatch-"; => "update\npatch-" DB<106> $patch = "patch-" => "patch-" DB<107> $str =~/\Q$patch/ => 1

        $patch must be included in $str not vice versa.

        No need for multiline because your pattern doesn't span multiple lines.

        '\Q' assures that regex syntax like '.' is escaped.

        Cheers Rolf

        ( addicted to the Perl Programming Language)

        Along the lines of your initial code:

        use strict; use warnings; my $PatchPath = "patch-"; my $output = "update patch-"; my @array = split /\s+/, $output; if ( grep { $PatchPath =~ /$_/ } @array ) { print "Match found\n"; }

        SORRY: This post is somehow to far up in the chain. Should be a few posts further down...

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1034976]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2018-06-18 00:46 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (107 votes). Check out past polls.