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>