#!/usr/bin/perl use strict; use warnings; use 5.010; use utf8; #### in einer Subroutine derefernzieren #### # ## Wir bauen uns ein Toast-Brot nach eigenen Wünschen # # sub Toast_mit ($brotart, $anzahl_der_scheiben, $referenz_auf_reihenfolge_des_belags, $referenz_auf_belaege) # sub Toast_mit { my $was = shift; # Art des Brotes my $wieviel = shift; # Menge der Brotscheiben my $reihenfolge_ref = shift; # Referenz auf Array mit den Belägen my $belag_ref = shift; # Referenz auf Hash mit Belag und Menge des Belags say "Du möchtest $wieviel × $was"; say " mit folgenden Belägen:"; for my $belag ( @{$reihenfolge_ref} ) { # Referenz auf einen Array wird durch Voranstellen von @ in ein Array dereferenziert say " ", $belag, ": ", $belag_ref->{$belag}; # Referenz auf einen Wert in einem Hash wird durch nachfolgendes -> dereferenziert # ${$belag_ref}{$belag}; # oder durch vorangestellten $ } } my %belaege = ( Butter => "4 Stück", Salami => "2 Scheiben", Petersilie => "4 Blätter", Senf => "100 g", Tomate => "1 Scheibe"); my @reihenfolge = qw(Butter Salami Tomate Senf Petersilie); Toast_mit("Roggenbrot", 3, \@reihenfolge, \%belaege);