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);
In reply to error when passing hash as reference causes by ccarden
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |