Thread Gehirnverknotung dank Hashes (12 answers)
Opened by Basti at 2012-09-07 16:13

Linuxer
 2012-09-17 12:36
#161862 #161862
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Hi,

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub einlesen {
  $count = 0;
  $db->Sql("select * from customers");
  while ($db->FetchRow()) {
    $customer{'customerId'} = $db->Data("kundennummer");
    $customer{'street'} = $db->Data("strasse");
    $customer{'streetNumber'} = $db->Data("hausnummer");
    $customer{'city'} = $db->Data("ort
    $allCustomers{$count} = \%Customer;  ## Linuxer "ddv" removed from \%ddvCustomer
    $count++;
  }
  return %allCustomers;
}


Wo wird der Hash %customer deklariert.
Wenn das ein globaler Hash ist, dann überschreibst Du ihn immer wieder und legst eine Referenz darauf unter $count in %allCustomers ab...

Besser wäre es innerhalb der While-Schleife ein Hash neu zu deklarieren, z.B.:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sub einlesen {
  # no global $count
  my $count = 0;

  $db->Sql("select * from customers");

  while ($db->FetchRow()) {
    # new hash for each Row
    my %customer = (
      'customerId'   => $db->Data("kundennummer"),
      'street'       => $db->Data("strasse"),
      'streetNumber' => $db->Data("hausnummer"),
      'city'         => $db->Data("ort},
    );

    $allCustomers{$count++} = \%Customer;  ## Linuxer "ddv" removed from \%ddvCustomer
  }

  return %allCustomers;
}
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Gehirnverknotung dank Hashes