Stella: Hash übergeben; for %hash

Beitrag lesen

Hi

my %hash = {a => 'foo', b => 'bar'};

Dein hash ist nicht richtig deklariert, benutze einfache Klammern.
Am besten eine Referenz in die Subfunktion übergeben, like this:

[code lang=perl]
my %hash = ('a' => 'foo', b => 'bar');
test(%hash);

sub test {
  my $ref = shift;
  while ( my ($key, $value) = each %{$ref} ) {
    print "$key => $value\n";
  }
}

  
ok, das kommt von Copy und Paste :-(  
  
eine Frage hätte ich noch  
  
ich möchte nach der Schleife überprüfen ob es ein bestimmtes Element im hash gibt und ob er nicht leer ist  
  
~~~perl
  
if(%{$ref{elementname}}){  
...  
}

-> Global symbol "%ref" requires explicit package name at /opt/x/y/z/test.pm line 35.

Stella