Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Quiero convertir un archivo csv a otro formato y al intentar cambiar un valor me da el error del título:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use strict;
- use warnings;
- use diagnostics;
- use Text::CSV_XS;
- my $csvobj = Text::CSV_XS->new();
- my $csvfile = "/tmp/test.csv";
- open CSV, "<", $csvfile or die "cannot open $csvfile: $!\n";
- # let's parse the file
- while (<CSV>) {
- next if !/\S/ ; # skip blank lines
- $csvobj->parse($_) or die "can't parse: ". $csvobj->error_input();
- my @fields = $csvobj->fields;
- # the date field is in this format: 20040231
- if ( $fields[0] =~ /(\d{4})(\d{2})(\d{2})/ ) {
- $1 = tr/2/a/d;
- print $1, "\n";
- }
- }
- close CSV;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
y el archivo csv es de este tipo:
Using text Syntax Highlighting
"20080731","1770001 381 xxxx xxxx>xxxx","xxxxxx","xxxxx","BA","Af","41,13","Betaalautomaat","PASNR ***xxxx 31-07-2008 19:01TRANSACTIENR xxxxx "
El formato de la fecha del primer campo csv es yyyymmdd y yo necesito yy-mm-dd, por eso intento usar la función tr/// para cambiar el valor de $1, pero el resultado no es el deseado. El pragma diagnostics me dice que estoy intentando cambiar una constante. Sin embargo, no logro solucionar este problema.
¿Alguna idea?
TIA.