Jay Savage
<[EMAIL PROTECTED]
l.com> To
"[EMAIL PROTECTED]"
08/02/2005 05:43 <[EMAIL PROTECTED]>, beginners
PM perl <[email protected]>
cc
Please respond to Subject
Jay Savage Re: reg exp using \G
<[EMAIL PROTECTED]
l.com>
Please don't top post. I think you've been asked this before.
On 8/2/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> ok I understand now...thanks, but I tried it and it is still stopping at
> original1.1
> I then modified it to print YESSSS if ($1) but never saw YESSSS in
STDOUT.
Tha's because as a one liner it doesn't use parentheses. And also
becuase YESSSSS isn't a string, it's a constant. Do you have warnings
turned on? warnings and strict would catch these sorts of things.
print "Yes" if $1; # or
if ($1) {print "Yes"}
Your choice.
> > #!/usr/bin/perl
> > use strict;
> > use warnings;
> >
> > while (<DATA>) {
> > if (/AA/ ... /(CC)/) {
> > print;
> > if ($1) {
> > while (<DATA>) {
> > # this regex defines when your section is done
> > last if /^\s*$/;
> > print;
> > }
>
> # so you don't have to spin over the rest of the file
> last;
>
> > }
> > }
> > }
I think we need a clearer description of what you want to do here. At
least I do. will your last line have "original.1"? Or will it have
something else? i don't think anyone knows what "the "end of
original.1" means. "original.1" is a string, and the current code
matches that string. If you need to match the end of the string, use
'/original\.1$/'.
I think, though that you mean the end of some block of lines in your data
file.
It looks to me like you want something along the lines of :
while(<>) {
if (/allsets/ .. /original\.1/) {
print;
} elsif (/media/ .. /Total/) {
print;
}
}
-- j
--------------------------------------------------
BOTTOM POST
I got it working and the code I am using is now
open (ARC, "archiver -lv |") or die $!;
my $flag=0;
foreach (<ARC>)
{
if (/(?i)allsets/)
{
$flag=1;
}
if ($flag==1)
{
print $_;
}
}
as opposed to
if (/allsets/ .. /original1.1/ )
because I needed the data after original1.1.
thank you
derek
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>