#!/usr/bin/perl use warnings; use strict; sub isAnagram { my $w1 = shift; my $w2 = shift; if (length($w1) != length($w2)) { return 0; } my %h1; my %h2; my @a1 = split("", $w1); my @a2 = split("", $w2); my $i; foreach $i (@a1) { $h1{$i} += 1; } foreach $i (@a2) { if (! exists($h1{$i})) { return 0; } $h2{$i} += 1; } foreach $i (keys(%h1)) { if (! exists($h2{$i})) { return 0; } print "$i\t"; print "$h1{$i}\t"; print "$h2{$i}\n"; if ($h1{$i} != $h2{$i}) { return 0; } } return 1; } print isAnagram("Hallo", "ollaH") . "\n\n"; print isAnagram("KAMEL", "AMEK") . "\n\n"; print isAnagram("KAMEL", "LLMEK") . "\n\n"; print isAnagram("KAMEL", "LAMEK") . "\n"; print isAnagram("DONAUDAMPFSCHIFFAHRTSGESELLSCHAFTSKAPITÄN", "RGHEKAALPFOPMTEFSACDTUFSNINSCTFDAÄSHLSAHI") . "\n";