From: John Doe <[EMAIL PROTECTED]>
To: beginners@perl.org
Date: Thursday, March 31, 2005, 2:24:24 PM
Subject: apache log parsing



  Thursday, March 31, 2005, 2:24:24 PM, you wrote:

  > Am Donnerstag, 31. März 2005 11.08 schrieb John:
>> hello
>>
>> I want to split the datetime of apache log
>>
>> i tried this code with no success
>>
>> @fields=split(/[/:]/, $datetime); ### DD/MM/YYYY:HH:MM:SS
>>
>> has anyone tried anything like that?

> Always use "use strict; use warnings" in your code - it gives you very good
> hints:

> use strict; 
> use warnings;
> my $datetime="DD/MM/YYYY:HH:MM:SS";
> @fields=split(/[/:]/, $datetime);

> # This prints out:
> Global symbol "@fields" requires explicit package name at - line 3.
> Unmatched [ in regex; marked by <-- HERE in m/[ <-- HERE / at - line 3.

> Here is the modified code:

> use strict; use warnings;
> my $datetime="DD/MM/YYYY:HH:MM:SS";
> my @fields1=split(/[\/:]/, $datetime); # [1]
> my @fields2=split(m,[/:],, $datetime); # [2]
> print join ", ", @fields1;
> print "\n";
> print join ", ", @fields2;

> # This prints out:
> DD, MM, YYYY, HH, MM, SS
> DD, MM, YYYY, HH, MM, SS

> To avoid perl interpreting a "/" searched for with the end of the regex, you
> either have to 
> [1] escape "/" with " \"
> or 
> [2] use another "delimiter" (don't know the english term at the moment) for
> the match regex - in this case, "m,," instead of "//", explicitly indicating
> the match with an "m".

> see perldoc perlre

> joe



Yeah, it worked. Thanks a lot.

I found the a module Apache::Regexp can parse apache logs
but i am afraid it cannot output statistics just does what
i am trying to do subsrt the datetime, hosts, etc.



--
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