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>