Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Select data between a START and END pattern

by Thelonius (Priest)
on May 01, 2003 at 20:51 UTC ( [id://254808]=note: print w/replies, xml ) Need Help??


in reply to Select data between a START and END pattern

Although dragonchild gives a good example of .., here's a more general explanation, along with the difference between .. and ...

First of all, there is use of .. in a list context:

@a = 1 .. 7;
Then there's the unrelated use in a scalar context. It only makes sense in a loop.
while (something) { if (EXPRSTART .. EXPREND) { doit(); } }
is equivalent to:
$inmatch = 0; while (something) { if (!$inmatch && EXPRSTART) { $inmatch = 1; } if ($inmatch) { doit(); } if ($inmatch && EXPREND) { $inmatch = 0; } }
Okay? Now for three dots:
while (something) { if (EXPRSTART ... EXPREND) { doit(); } }
is equivalent to:
$inmatch = 0; while (something) { $wasinmatch = $inmatch; if (!$inmatch && EXPRSTART) { $inmatch = 1; } if ($inmatch) { doit(); } if ($wasinmatch && EXPREND) { $inmatch = 0; } }
Subtle difference. To see it in action, compare:
while (<>) { print if /A/ .. /B/ }
with
while (<>) { print if /A/ ... /B/ }
on this input file
Here's some text before Some text with an A some lines in the middle 1 some lines in the middle 2 some lines in the middle 3 Some text with a B some useless lines 1 some useless lines 2 some useless lines 3 A line with both an A and a B some lines after the line with both 1 some lines after the line with both 2 some lines after the line with both 3 Once again, text with a B more useless lines 1 more useless lines 2 more useless lines 3

Replies are listed 'Best First'.
Re2: Select data between a START and END pattern
by dragonchild (Archbishop) on May 01, 2003 at 21:12 UTC
    Excellent explanation! ++! Learn something new every day...

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

    Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2024-04-25 16:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found