> Now, with hash references, you can do it two ways. $foo{whatever} is the
> same as $foo->{whatever}I meant $$foo{whatever} is the same as $foo->{whatever} ;)
Patrick Galbraith wrote:
that's called a reference in perl
$foo = 'hummmm';
if I want to pass that as a reference to a subroutine (much better way to do things than by value) I would do this:
speak(\$foo);
sub speak { my ($foo) = @_; # this is by reference "$$" print $$foo . "\n"; # also, if I want to set $foo, I can do so without having to # return the value of $foo (because we're refering to the # location of the data that's contained in $foo $$foo = $$foo . " we've spoken\n";
# references are the best way to pass data! }
Now, with hash references, you can do it two ways. $foo{whatever} is the same as $foo->{whatever}
my $foo = {}; # hash reference as opposed to 'my %foo;'
$foo->{words} = 'whatevah';
speak($foo);
sub speak { my ($foo) = @_; print $foo->{words} . "\n"; #same thing print $$foo{words} . "\n"; }
my %foo;
$foo{words} = 'ok ok whatevah';
# by reference, and the data is accessed the # same way as we accessed the hashref $foo speak(\%foo);
Hope this helps...
Richard Schilling wrote:
Just a quick question, and perhaps it's a Perl language question. I forget, but why do you have to reference a hash with a double "$$" when you use fetchrow_hashref?
[- use DBI;
# code to open connection, run query, etc . . . -]
[$ if $hashed_row = $query->fetchrow_hashref $] fieldname: [+ $$hashed_row{'fieldname'} +]<br> [$ endif $]
Don't know why but for some reason I'm drawing a blank . . .
Thanks.
--Richard
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
-- ---------------------- Patrick Galbraith Senior Software Developer [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] 206.719.2461
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
