Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Select data between a START and END pattern

by Thelonius (Curate)
on May 01, 2003 at 20:51 UTC ( #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


Comment on Re: Select data between a START and END pattern
Select or Download Code
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
Node Status?
node history
Node Type: note [id://254808]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (8)
As of 2014-09-17 05:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (60 votes), past polls