Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

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

Comment on Re^2: Multiline match
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 (Chancellor) 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 the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2015-11-27 15:50 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (731 votes), past polls