ccarden has asked for the wisdom of the Perl Monks concerning the following question:
I cannot seem to correctly pass hashes as references. I will need to do this in order to pass more than one hash or a hash along with other parms.
I keep getting errors along the likes of:
Not a CODE reference at ./hashTest.pl line 33.or:
Can't use string ("me") as a HASH ref while "strict refs" in use ...The code resembles most of the reference examples on this site. I get the errors on Linux and IRIX.
#!/usr/bin/perl -w use strict; my %hash = ( 's' => '1', 'e' => '200', 'b' => '1', 'me' => '0', 'mf' => '0', 'im' => '/usr/tmp/cache/ccarden/earth/images/earth', 'pad' => '4', 'yh' => '191', 'yl' => '0', 'of' => 'jpg', 'x' => '1024', 'y' => '768' ); sub print_h { my %new_hash = @_; foreach (keys %new_hash) { print " Key: $_,\t Value: $new_hash{$_}\n"; } } sub print_h_byref { my $href = shift; my ($value, $key); foreach $key (keys %$href) { $value = $href->($key); print " Key: $key,\t Value: $value\n"; } } print_h (%hash); print "\n"; print_h_byref (\%hash);
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: error when passing hash as reference causes
by dmitri (Priest) on Sep 11, 2003 at 21:33 UTC | |
|
Re: error when passing hash as reference causes
by NetWallah (Canon) on Sep 11, 2003 at 23:54 UTC | |
|
Re: error when passing hash as reference causes
by jdtoronto (Prior) on Sep 12, 2003 at 03:09 UTC |