# gegeben sei ein Array mit Arrays: my @array=( [1], [1 3 4], [1 2 3 4], [1 2 3 4], [2 3 1 4], [4 3 1], ); # definiere einen Hash, # der die als Indikator für die doppelten Werte dienen soll: my %unique; # das Array für die Werte # ohne die doppelten my @unique_array; # gehe das Array @array durch: for my $array_ref (@array) { # $array_ref ist eine referenz auf ein Array, # das muss etwas anders behandelt werden als ein normales Array. # das Array sortieren und gleichzeitig eine Kopie anlegen: my @copy=sort(@$array_ref); # wenn man ein Array in Doppelte Anführungszeichen setzt, # dann fügt Perl dort die elemnte der liste ein. # man kann also schreiben my $key="@copy"; # und bekommt einen string den man als Schlüssel verwenden kann. # nun wird geprüft ob der String als Schlüssel noch nicht im Hash ist: if(!$unique{$key}) { # setze den Schlüssel, # damit ein Array mit den selben Werten nicht nochmal eingefügt wird. $unique{$key}=1; #füge das Array @unique_array hinzu: push(@unique_array,\@copy); # hier ist es wichtig eine Refenz hinzu zu fügen! } } # in @unique_array sind nun Arrayrefenzen mit einzigartigen Wertkombinationen