#!/usr/bin/perl use strict; use warnings; no warnings q{uninitialized}; while (my $line = ) { chomp($line); my ( $mon, $day, $time, $loghost, $prog, $remainder ) = split m{:?\s+}, $line, 6; my %monthNos = do { my $no = 0; map { $_ => ++ $no } qw{ Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec }; }; my ( $user ) = $remainder =~ m{user=([^,]+)}; my ( $rip ) = $remainder =~ m{rip=([^,]+)}; $remainder =~ tr/"/'/; my $yr = q{2012}; my $csv = sprintf q{%02d/%02d/%s %s,%s,%s,"%s",%s,%s}, $day, $monthNos{ $mon }, $yr, $time, $loghost, $prog, $remainder, $user, $rip; print "$csv\n"; }