in reply to hash and it's keys...

stan2004,
Well, you have both done it wrong and done it right. The correct syntax of a for loop of this type is:
# pseudo for <variable> ( list ) { # some code presumably using variable } # real for my $key ( keys %hash ) { print "$key\n"; }
You may omit the <variable> and perl will happily stick the current alias from the list into $_ (see perldoc perlvar).

You have chosen not use warnings and strictures so you didn't get told about the other things you did wrong. This is a testimony to how far Perl will go to do what you mean. The correct way to assign a value to a hash key is:

#psuedo $hash{<key>} = <value>; #read $hash{foo} = 'bar';
You can however assign multiple values to multiple keys at once using a hash slice. The syntax is
#pseudo @hash{<list of keys>} = <list of values>; #real @hash{ @keys } = @values;
Finally, keys returns a list of keys in a hash in list context, but the number of keys in scalar context. That is why you got the list of keys. It sounds like you still have a lot to learn. See the various perldocs, check out the tutorials section, check out http://learn.perl.org.

Cheers - L~R