#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
while (my $line = <STDIN>) {
chomp($line);
my ( $mon, $day, $time, $dom, $login, $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 $yr = q{2012};
my $csv = sprintf q{%02d/%02d/%s %s,%s,%s,"%s"},
$day, $monthNos{ $mon }, $yr, $time, $dom, $login, $remainder;
say $csv;
}
As I wanted the remainder to be in double quotes so it would read in as one field. The problem is that remainder sometimes already contains double quotes which I would like to remove or replace with single quotes
I tried the following but it leaves be with an empty set of double quotes
my $remainder =~ s/""\"\""/\'/g;
|