in reply to Improve foreach with help of map?

Why not just:
my ($result) = $content =~ /(something)/;

Replies are listed 'Best First'.
Re^2: Improve foreach with help of map?
by mickep76 (Beadle) on Oct 09, 2009 at 13:50 UTC

    In this case I only want the first match and then stop processing.

      The code I gave you gives you the first match. Without having the process the entire string splitting it into separate lines first.

        You are indeed correct, my bad. It does thought have the problem in this case to make the regex very complex since the first match kind of identifies position and then the second rexegp gets the actual value. Between the first and second match there is ALOT of crap.

        In this case it look something like.

        <td><b>End Date</b></td>^M <td><img src="http://welcome.hp-ww.com/img/s.gif" idth="1" height="1" +border="0" alt=""></td>^M <td>^M 19 Jun 2012^M

        So the regexp would first have to match "End Date" and then the actual date and ignore everything between.

        I tried something like:

        my ($result) = $content =~ /End Date.*(\d\d \w\w\w \d\d\d\d)/;

        But it seems there's just to much crap between the lines.

        The fine example of HTML is from HP. It's feels like 1994 all over again.