U235sentinel wrote:
> 
> While I've already done this with a simple shell script using grep, I
> was trying to figure out how I can do the same thing in perl.
> 
> I have an access_log  from my apache web server and while I can manually
> enter a date for my pattern match (which works fine), I can't seem to
> get it automated properly.  I suspect the $date variable may be passing
> `date +%d/%b` instead of  26/Dec to the pattern matching if statement.
> 
> FYI...  when I run the program I pass the name of the file I want parsed
> ( example:   code.pl access_log )
> 
> Any thoughts on my mistake?
> 
> Thx
> 
> ---------------------
> 
> Script I'm using.
> 
> #!/usr/bin/perl

use warnings;
use strict;


>   $date=`date +%d/%b`;

There is no need to run an external program to get the date:

my @mons = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
my $date = sprintf '%02d/%s', (localtime)[3], $mons[ (localtime)[4] ];

Or:

use POSIX 'strftime';
my $date = strftime '%d/%b', localtime;


>   print "\n";
>   print "Current search pattern is $date";
>   print "\nStarting parse routine...\n\n";
>   while (<>) {
>     if (m|$date|) {

This should work.  Are you sure that the day of the month format is %d
and not %e?


>       print $_;
>    } else {
>   #  print "No match.\n";
>    }
> }


John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to