On Thu, Feb 19, 2009 at 22:42,  <pa...@compugenic.com> wrote:
> I have a single input file with entries as follows:
>
> --snip--
> USER1 [20090101] note
> bla bla bla
> bla bla bla
>
> USER2 [20090104] note
> bla bla bla
> bla bla bla
>
> --snip--
>
> What I'm trying to do is create a single-argument script which displays
> all entries for a given user.
>
> So calling it as 'filter.pl user1' will print all entries for USER1.
snip

Your data is perfect for the paragraph mode* of readline:

#!/usr/bin/perl

use strict;
use warnings;

my $user  = shift;
my $regex = qr/\A$user/;

local $/ = '';
while (my $record = <DATA>) {
        chomp $record;
        if ($record =~ /$regex/) {
                print "$record\n";
                last;
        }
}

__DATA__
USER1 [20090101] note
bla bla bla
USER2 loves this user

USER2 [20090104] note
bla bla bla
bla bla bla

USER3 [20090107] note
bla bla bla
bla bla bla


* http://perldoc.perl.org/perlvar.html#$/

-- 
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.

-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to