Hello Jonathan

It's because the regex /^.*\@/g finds the _last_ @ in the record, which
isn't followed by 'domain'. The .* will consume as many characters as it can
as long as the rest of the regex is satisfied.

If you were to do it like this, you'd use /^.*?\@/g because .*? matches as
few characters as possible. But it will work fine as

    if (/@/g) { .. }

HTH,

Rob




----- Original Message -----
From: "Jonathan Daniels" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, December 07, 2002 12:32 AM
Subject: This perl script does nothing....


> Hi,
>
> Hopefully this isn't too stupid of a question.  Thanks in advance for any
> help.
>
> Can anyone tell me why, when I feed a file of the following format
>
>
Date,Time,Action,Result,Client,Server,From,To,To,To,...,Subject,Size,SMTPID
>
> 20021128,9,Message Accepted,,10.0.0.1,,[EMAIL PROTECTED],[EMAIL PROTECTED],...
>
> This type of line many more times....
>
> To the following script it does nothing.  Nothing at all.  No errors, just
> returns to the command prompt.
>
>
> #!/usr/bin/perl
>
> while (<>){
>
>         chomp;
>
>         if (/^.*\@/g){ # find the first @ remember where it is.
>
>                 if (/\G(domain)/i){    #go back and look for domain
>
>                         print ;  #if you find domain print the line.
>                 }
>
>         }
>
>         else{
>
>                 print "No Match.\n";
>
>
>         }
>
> }
>
>
>
> Thanks,
>
> Jonathan
>
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to