Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

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-5.1.1.21510 is a substring of patch-5.1.1.21510.gpg, hence it should match. All it wants to match is patch-5.1.1.21510, 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-5.1.1.21510' =~ /patch-5.1.1.21510.gpg/;, which is backwards from what you need. The behavior you seek would look more like

    my @array = split('\n',$output); if ( grep { 'patch-5.1.1.21510.gpg' =~ /\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.

      Exactly!



Re^3: Multiline match
by LanX (Canon) 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-5.1.1.21510"; my $patch = "patch-5.1.1.21510.gpg"; if ($str =~/$patch/ms) { print "Yes \n"; }
        thats the way it works

        DB<105> $str = "update\npatch-5.1.1.21510.pgp"; => "update\npatch-5.1.1.21510.pgp" DB<106> $patch = "patch-5.1.1.21510" => "patch-5.1.1.21510" 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-5.1.1.21510.gpg"; my $output = "update patch-5.1.1.21510"; 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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1034976]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (6)
As of 2015-07-30 01:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (269 votes), past polls