You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl@perl.apache.org by Patrick Galbraith <pa...@patg.net> on 2003/06/25 04:55:46 UTC

Re: proper referencing of hashes returned by fetchrow_hashref . . .(typo)

 > 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: embperl-unsubscribe@perl.apache.org
>> For additional commands, e-mail: embperl-help@perl.apache.org
> 
> 
> 


-- 
----------------------
Patrick Galbraith
Senior Software Developer
patg@patg.net capttofu@slashdot.org
pgalbraith@classmates.com
206.719.2461


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org