in reply to Re^7: Sybase BCP date formatter
in thread Sybase BCP date formatter

This is the first time I used this forum and to keep the code and stuff looking clean. I include "##</code><code>##". So my first line is correct and has #!/usr/bin/perl. perl -v returns This is perl, v5.8.0 built for alpha-dec_osf... Does the rest of the code look ok? Thanks again, Robert

Replies are listed 'Best First'.
Re^9: Sybase BCP date formatter
by runrig (Abbot) on Dec 16, 2008 at 21:49 UTC
    Yes the code you pasted looks ok. I don't see any "+==" on line 22 though, so the error does not make any sense. Are you sure it's copy/pasted correctly (maybe start over again)? And just wrap code in <code></code> tags around here.
      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

        This website has automatic code wrapping. It seems you didn't use the "download" link to download the code but copy'n'pasted the wrapped code. If you will look at the original node where you pasted the code from, you will note a red + sign, which is the site's way of marking a continued line. Just use the "download" link instead of copy'n'paste.