On Jan 29, 2008 7:45 AM, Harry Bennett <[EMAIL PROTECTED]> wrote:
> I am using this line:
>
> foreach my $pair (keys %{$config{server}}) {
> .....
> }
>
> but get the warning:
>
> Pseudo-hashes are deprecated at ......
>
> I am using the example from 'Programming Perl (third edition)' Section 9.4.3
>
> I guess my ultimate question would be, what have they been deprecated to?
> And an example would be GREATLY appreciated.
snip
The error is being printed at that line, but its cause is earlier in
your code. The following code has no error
#!/usr/bin/perl
use strict;
use warnings;
my %config = (
server => { one => 1, two => 2, three => 3 }
);
foreach my $pair (keys %{$config{server}}) {
print "$pair\n";
}
The error is really the use of pseudo-hashes. They have not been
replaced with anything because they turned out to be a bad idea. The
goal was to have the speed of an array, but the easy of use of a hash.
The implementation wound up doing neither and cluttering up the
source*. The other feature of pseudo-hashes, the compile time
checking of the keys, has been preserved in the fields pragma**.
* from http://use.perl.org/article.pl?sid=01/07/16/127257
The extra code to support pseudo-hashes slowed down all arrays
and hashes by 10 to 15%.
** see perldoc fields or http://perldoc.perl.org/fields.html
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/