Sto utilizzando il modulo Text::CSV
per analizzare le righe in vari campi da un file con valori separati da tabulazioni.Analisi dei campi con caratteri speciali utilizzando Perl Testo :: CSV
Esempi di caratteri speciali nelle stringhe sono
"CEZARY Å?UKASZEWICZ, PAWEÅ? WIETESKA","BÜRO FÜR"
Il mio codice va come di seguito:
my $file = $ARGV[0] or die "Need to get TSV file on the command line\n";
my $csv = Text::CSV->new({sep_char => "\t"});
open(my $data,'<', $file) or die "Could not open '$file' $!\n";
while (my $line= <$data>) {
if($csv->parse($line)){
my @curr_arr = $csv->fields();
}
} # end of while
close $data;
Quanto sopra è alcune delle parti importanti del mio codice. L'errore che ottengo è il seguente:
cvs_xs error : 2026 - EIQ - Binary Character inside quoted field, binary off @pos 15
Nota importante: Il comportamento predefinito è quello di accettare solo caratteri ASCII. Ciò significa che i campi non possono contenere newline. Se i tuoi dati contengono newline incorporate nei campi o caratteri sopra 0x7e (tilde) o dati binari, devi * impostare * binary => 1 nella chiamata a new(). Per coprire la più ampia gamma di opzioni di analisi, dovrai sempre impostare binario. – alex