nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

umlautproblem

Von: Gerhard Wolf (quisquiliae@gmx.de) [Profil]
Datum: 06.10.2009 20:02
Message-ID: <7j1f13F32h5unU1@mid.individual.net>
Newsgroup: de.comp.lang.perl.misc
Hallo,

ich hab eine Variable definiert, die einen Umlaut enthält:

my $valid_header = "Geschäftsvorfall";

beim Einlesen aus einer Datei will ich herausfinden ob eine Zeile
bestehend aus dem String "Geschäftsvorfall" existiert.
Obwohl Zeilen mit dem String existieren wird kein Treffer gefunden.
Eigentlich müsste gleich Zeile 1 (CSV-Header) einen Treffel landen aber
$_ ne $valid_header versagt hier obwohl beim debuggen $_ den umlaut
korrekt anzeigt.

Wo liegt das problem? Was kann ich tun?


anbei das script:

#!/usr/bin/perl -w
use strict;
use warnings;


my $file;
my $ksk_data      = "/blabla/bla/daten";
my $download_data = "/home/gewo/Desktop";
my @files         = glob( $download_data . "/*.csv" );
my $valid_header
=
"\"Kontonummer\";\"Datum\";\"Valuta\";\"Gesch&Atil
de;¤ftsvorfall\";
\"Verwendungszweck\";\"Betrag\";\"Name\";\"Konto\"
;\"BLZ\"";

for $file (@files) {
merge_files($ksk_data."/ziel.csv",$file );
}

sub merge_files {
my ($target,$source) = @_;
my %csvline;
my $lcount = 0;
my $header = "";
my $files;

open my $CSV, '<', $source or die $!;
while (<$CSV>) {
if ( $lcount == 0 ) {
if ( $_ ne $valid_header ) {
print $file. " hat einen anderen Aufbau\n";
return -1;
}
}
}
close $CSV or die $!;
unlink $target;
open my $MERGED, '>', $target or die $!;
print $MERGED $header;
while ( my ( $key, $value ) = each(%csvline) ) {
if ( $key ne $header ) {
print $MERGED $key;
}
$lcount++;
}
close $MERGED;
return $lcount;
}

[ Auf dieses Posting antworten ]

Antworten