#!/usr/bin/perl use strict; use warnings; # Master-Array my $master = [ { x => ['1','a'], y => [], z => ['4'], }, { x => ['b','a'], y => ['1','a'], z => ['1'], }, { x => ['1','a'], y => [], z => [1], }, { x => [], y => ['a','1'], z => ['2'], }, ]; # autonome Hashes my $h1 = { x => ['1','a'] , y => [] , z => ['4'] }; my $h2 = { x => ['a'] , y => [] , z => ['1'] }; my $h3 = { x => ['1'] , y => ['a',1] , z => [2] }; my $h4 = { x => [] , y => ['a1'] , z => ['1','2'] }; my @checkit = ($h1,$h2); my $hrefCount; foreach my $href (@checkit){ $hrefCount++; masterElemente($href); printf "ende von hrefCount: %s\n",$hrefCount; }; sub masterElemente{ my $href = shift; for my $element (0..$#{$master}){ printf "MASTERELEMENT: %s\n",$element; my $count=0; my $masterKeys = keys (%{@{$master}[$element]}); foreach my $key (keys %$href){ printf "key: $key\n"; printf "\tmaster:\t@{$master->[$element]->{$key}}\n"; printf "\thref:\t@{$href->{$key}}\n"; next if ( ($href->{$key}) != ($master->[$element]->{$key}) ); printf "count=%s\n",$count; $count++; } printf "\n"; printf "BINGO beim $element element (gezaehlt von 0-$#{$master})!\n" if $masterKeys eq $count; printf "\n"; last if $masterKeys eq $count; } }