#!/usr/bin/perl -w #!C:/xampp/perl/bin/perl -w # # This file is part of a perl tutorial # # (C) Copyright 1999 Hans Kern # # File name : pldemo02.cgi # Created by : Hans Kern # Creation date: 31.3.99 # print "Content-type:text/plain\n\n"; # Strukturen mit Strukturen # Achtung! # Referenz(!) auf einen Hash: {'Montag','monday','Dienstag','tuesday','Mittwoch','wednesday'} # Referenz(!) auf einen Array: [1,2,3,5,7,11,13] %dict = ('Tagedict',{'Montag','monday','Dienstag','tuesday','Mittwoch','wednesday'}, 'Primzahlen',[1,2,3,5,7,11,13],'Kreiszahl',3.14); $size = %dict; print "$size\n"; foreach $key ( keys(%dict)) { print "$key $dict{$key}\n" }; print "$dict{'Tagedict'}{'Montag'}\n"; # Hashelement vom Hashelement print "$dict{'Primzahlen'}[0]\n"; # Arrayelement vom Hashelement print "Typpruefung der Values eines Hash\n"; foreach $key ( keys(%dict)) { if (ref( $dict{$key}) eq "HASH") { print "H $key $dict{$key}\n"; foreach $ke ( keys(%{$dict{$key}})) { print "$ke ${$dict{$key}}{$ke}\n"; } } elsif (ref( $dict{$key}) eq "ARRAY") { print "A $key @{$dict{$key}}\n"; foreach $ke ( @{$dict{$key}}) { print "$ke \n"; } } else { print "S $key $dict{$key}\n"; } } print "\nPretty Printing\n"; require 'dumpvar.pl'; dumpValue(\%dict); print "\nArray\n"; @pri = [1,2,3,5,7,11,13]; # Falle! Zuweisung einer Arrayreferenz an einen Array dumpValue(\@pri); # geht! foreach $key ( @pri) { print "$key \n" # geht nicht! } print "@pri \n"; # geht nicht! print "\nReferenz auf einen Array\n"; $prim = [1,2,3,5,7,11,13]; dumpValue(\@$prim); # geht! foreach $key ( @$prim) { print "$key \n" # geht! } print "@$prim \n"; # geht! print "\nListe\n"; @primz = (1,2,3,5,7,11,13,17); dumpValue(\@primz); foreach $key ( @primz) { print "$key \n" } print "@primz \n";