n.d. parker: Script funktioniert nur local (Versionskonflikt?)

Beitrag lesen

Moin,

aus einer csv-datei der Art:

name|mailaddress|mobile|phone|rubrik|pw

^^

das solltest du crypten.

soll in einen zweidimensionalen Hash geparst werden. [...]

ich kann dein Problem hier nicht nachvollziehen. (Perl 5.6.0, Win32)
Dafuer hab ich aber das ganze mal lesbarer aufgeschrieben (und strict-faehig ;)
vielleicht gibts ja online tatsaechlich ein Problem mit nichtlokalisierten Variablen oder so.
Ach und nochwas: name ist jetzt eine redundante Information, das waere evtl. noch ein schoenheitsfehler ;)

#!/usr/bin/perl -w
use strict;
use Data::Dumper;

sub parse_members ($) {
  my $membersfile = shift;

# Opens the membersdb-file
  # bla, open, close etc.
  # bei open *und* close auf Fehler pruefen!
  #
  my @readmembers = <DATA>;

# remove \n
  #
  chomp @readmembers;

# entferne erste Zeile und ermittel die schluesselworte
  #
  my @key = split /|/ => shift(@readmembers);

# erzeugung eines 2dimensionalen hashes
  #
  my %members = map {
    my $i=0;
    my %hash = map {$key[$i++] => $_} split /|/ => $_;
    ($hash{name} => %hash);
  } @readmembers;

%members;
}

my $members = parse_members ('filename');
print Dumper ($members);

__END__
name|mailaddress|mobile|phone|rubrik|pw
Schnuffil|schnuffel@schnuffel.de|0169-55555555|030-12345678|design|sChN
Stoffel|stoff@stoff.de|0169-9876543|080-4444444|design, pr|STsT
Pumuckel|pumucke@mst.eder.de|555-1234567|0555-2468135|design|roteHaare
naechster|naechster@next.de|0555-0000000|000-0000000|Prod|letzter

evtl. hilfts ja schon,

Viele Gruesse,

n.d.p.