in reply to passing (hash)refs through subroutines
ormy ($hash_ref) = @_;
@_ is an array.my $hash_ref = shift;
Update
Just to note your snippet doesn't compile
connect is a perl function and after changing the name to my_connect we then getNot enough arguments for connect at C:\perm\dev\monk.pl line 15, near +"$handle)"
Line 16 is in sub a so for me the first connect doesn't work fine (because I'm using strict and warnings). What the error is telling you is that my $hash_ref = @_; sees the array in scalar context and returns the length of the array i.e. 1.Can't use string ("1") as a HASH ref while "strict refs" in use at C:\ +perm\dev\monk.pl line 16.
This compiles and runs but obviously I don't know what your connect() or makeDBconnection() does.
#!/usr/bin/perl use warnings; use strict; my %parameterhash; my $hashref = \%parameterhash; a($hashref); b($hashref); sub a{ my $hash_ref = shift; my $dbconnection= makeDBconnection(); my $handle = \$dbconnection; my_connect($handle); # line 15 $hash_ref->{dbhandle} = $handle; # line 16 } sub b{ my $hash_ref = shift; my $hand = $hash_ref->{dbhandle}; my_connect($hand); } sub my_connect { } sub makeDBconnection{ }
|
|---|