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.
Here is what I've got so far:
---
my $user = shift;
# slurp file
my $file = do {
open my $fh, 'inputfile.txt' or die $!;
local $/;
<$fh>;
};
if ( $file =~ /(^$user.*?)^$/smg ) {
print $1;
}
---
Here's my thinking behind the non-functional regex.
It matches a set of lines starting with a line which begins with $user,
followed by all non-empty lines, and terminated with an empty line (^$).
Running my script produces zero output. My questions are:
1. Is there a simpler way to approach/accomplish this?
2. If not, what's wrong with my regex?
Thanks in advance for any help.
/P
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/