Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Storing Lines before and After pattern

by allolex (Curate)
on Jan 27, 2004 at 00:58 UTC ( #324322=note: print w/replies, xml ) Need Help??


in reply to Storing Lines before and After pattern

This sooo looks like homework. Oh, well.

You'll probably be interested in the s modifier for regex matching. (See perlre for more detail.):

#!/usr/bin/perl use strict; use warnings; my $poem; { local $/ = undef; $poem = <DATA>; } my( $before, $after) = $poem =~ m/(.*)\bDOG\b(.*)/s; print "Text before:\n$before\n\n"; print "Text after:\n$after\n\n"; __DATA__ A Beautiful Poem Mary had a little lamb, little lamb, little lamb Mary had a DOG but everywhere that mary went the lamb was sure to go even though it did not like the dog very much. # Output Text before: A Beautiful Poem Mary had a little lamb, little lamb, little lamb Mary had a Text after: but everywhere that mary went the lamb was sure to go even though it did not like the dog very much.

--
Allolex

Replies are listed 'Best First'.
Re^2: Storing Lines before and After pattern
by Coruscate (Sexton) on Jan 27, 2004 at 05:26 UTC

    If you enjoy saving a few keystrokes here and there (and who doesn't?), you can replace

    my $poem; { local $/ = undef; $poem = <DATA>; }

    with this:

    my $poem = do { local $/; <DATA> };

    IMHO, it's not only shorter, it's also more readable, since you are assigning the entore operation to the variable. ;)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (5)
As of 2021-09-24 14:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?