cgicorner.ch

Informationen rund um Perl/CGI

Sie sind hier: Home > Knowledge Base > Hash-Variable als Parameter für Subroutine

Hash-Variable als Parameter für Subroutine

Wie kann ich einer Subroutine einen Hash als Parameter übergeben?

Das folgende Beispiel definiert zuerst zwei Hashes und gibt mit einer allgemeinen Funktion die entprechendesn Hashes aus. Dabei wird der Name des Hashes als Parameter referenziert (\%hashname).

#!/usr/bin/perl

my (%farben, %formen);

%farben=("Orange"=>"orange", "Zitrone"=>"gelb", "Erdbeere"=>"rot", "Gras"=>"gruen", "Holz"=>"braun");
%formen=("Ball"=>"rund", "Schachtel"=>"rechteckig", "Wuerfel"=>"quadratisch", "Birne"=>"oval");

&printHash("Farben von Objekten",\%farben);
&printHash("Formen von Objekten",\%formen);

sub printHash {
  my $title=$_[0]; # 1. Argument ist Titel
  my %hash=%{$_[1]}; # 2. Argument enthält Hash
  print "Titel: $title\n"; # Titel ausgeben
  foreach (sort keys(%hash)) { # Hash sortieren und jedes Element einzeln ausgeben
    printf(" %-10.10s -> %-10.10s\n", $_, $hash{$_});
  }
}

Autor: Jürg Sommer, knowledge@cgicorner.ch

[ zurück ]