I've included the code from my vi session with numbering turned on. Looks like it continues from line 22 to line 23.
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 { my %mons = qw( Jan 1 Feb 2 Mar 3 Apr 4 May 5 Jun 6 Jul 7 A
+ug 8 Sep
7 + 9 Oct 10 Nov 11 Dec 12 );
8 my $mon_str = join '|', keys %mons;
9 my $mon_re = qr/$mon_str/;
10
11 sub fix_bcp_file {
12 my ( $file ) = @_;
13 local ( $^I, @ARGV ) = ( '', $file );
14 while ( <> ) {
15 s/(^|\,)($mon_re)\s{1,2}(\d{1,2})\s(\d{4})\s\s?(\d
+\d?):(\d
16 +\d):(\d\d):(\d{3})([AP])M(\,|$)/
17 $1 .
18 sprintf( '%04d-%02d-%02d %02d:%02d:%02d.%03d',
19 $4,
20 $mons{ $2 },
21 $3,
22 ( $9 eq 'P' && $5 < 12) ? $5 + 12 : ( $9 eq 'A
+' && $5
23 +== 12 ) ? 0 : $5,
24 $6,
25 $7,
26 $8 ) .
27 $10
28 /eg;
29 print; # UPDATED thanks runrig
30 }
31 }
32 }
33 for my $file (@ARGV) {
34 fix_bcp_file($file);
35 }
36
Any ideas?
Rob |