in reply to Help with Multiple line RegEx

If your file is too big for slurping, you can set $/="*\n", so that you read mutiple lines each time.

#! c:/perl/bin/perl.exe # # $|++; AUTOLOAD; use strict; use warnings 'all'; my $Rec; $/ = "*\n"; ## Define the record separator to the end of the multiple +line record while (<DATA>) { chomp; next if ($_ eq ""); $Rec->{$1} = $2 if ($_=~ /-+\s+show (switchname)\s+-+\n(\w+)\n\*+/m +g); print "$1 $2\n"; } close DATA;

Note. You were missing an \n between (w+) and \*+. and as coded, $1 will always be 'switchname' and so the values will always overlay each other. I'm not sure what you were looking to do here?


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
The "good enough" maybe good enough for the now, and perfection maybe unobtainable, but that should not preclude us from striving for perfection, when time, circumstance or desire allow.

Replies are listed 'Best First'.
Re^2: Help with Multiple line RegEx
by blackadder (Hermit) on Oct 10, 2005 at 11:28 UTC
    Now what can I say?...Thanks indeed Buddy

    I have been humbled - yet again - by your vast knowledge Mr. Browser_UK.

    Thanks to all, I have learnt one or two things about RegEx.

    VIVA PERLMONKS
    Blackadder