#!/usr/bin/perl use strict; use 5.010; use warnings; # Feldwertigkeit, Priorität absteigend my $best = [qw /29 20 31 5 18 36 17 3 16 9 27 32 25 35 11 10 23 4 26 12 24 30 6 15 13 2 21 19 14 33 22 7 34 8 1 28/]; # dieses Array nach Haeufigkeit und # darin jeweils nach @best sortieren my @prio = qw/7 1 12 3 4 17 7 7 3 25 33 4 29 7 12 1 3/; # erwartetes Ergebnis @rang: 7 3 4 12 1 29 17 25 33 my %prio_hash; for my $key (@prio) { ( my $copy = $key ) =~ tr/0-9//cd; $prio_hash{$copy}=$key } my (@folge,$elm); for ( @$best ) { $elm=delete($prio_hash{$_}); push(@folge,$elm) if(defined($elm)); } print "\n"; print "Das ist \@prio : @prio\n"; print "\n"; print "Sortiert nach \@best: @folge\n"; print "\n"; # auffuellen nach @prio my @best_prio; for (@folge) { for my $i (@prio) { push @best_prio, $_ if($i == $_) } } print "\@best_prio : @best_prio\n"; print "\n"; my $erg =code(\@best_prio); my @rang=sort ordne keys %$erg; print "\@rang nach Häufigkeit: @rang\n"; print "\n"; # ++++++++++++++++++++++++++++++++++++++++++ sub ordne { $$erg{$b} <=> $$erg{$a} } print "\n"; sub code { my $woerter = shift; my %zaehler; foreach ( @$woerter ) { $zaehler{$_}++; } return \%zaehler }