in reply to Hash quesiton

Well, first of all, that code DOESN'T work.

%List isn't a list but a hash which contains as it's value for $key1 a reference to an anonymous hash which contains as it's value for $key2 a reference to an anonymous hash which contains as it's value for $key3 a reference to an anonymous hash... well you get the picture.

However, since hash values are always scalars, the for each statement is wrong here (each is normally not used like that anyway). Either the last value is an array reference, in which case you need to dereference it:

for my $element (@{$List{$key1}{$key2}{$key3}{$key4}{$key5}}) { .. }
or it's a hash reference:
while (my $name,$value) = each %{$List{$key1}{$key2}{$key3}{$key4}{$ke +y5}}) { .. }
or it's a simple scalar:
my $value = $List{$key1}{$key2}{$key3}{$key4}{$key5}}

see perlreftut and perlref.

"What should it profit a man, if he should win a flame war, yet lose his cool?"