Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

references quick reference (Re: push)

by tye (Sage)
on Jan 31, 2001 at 00:09 UTC ( #55329=note: print w/replies, xml ) Need Help??

in reply to push

  • To use a reference, say $ref, you put {$ref} in place of a variable name (not counting the $, %, or @):
    $scalar ${$sRef} @array @{$aRef} $array[0] ${$aRef}[0] $#array $#{$aRef} %hash %{$hRef} $hash{KEY} ${$hRef}{KEY} @hash{@list} @{$hRef}{@list}
  • If the reference is held in a simple scalar variable, then the { and } can be dropped:
    $scalar $$sRef @array @$aRef $array[0] $$aRef[0] $#array $#$aRef %hash %$hRef $hash{KEY} $$hRef{KEY} @hash{@list} @$hRef{@list}
  • If you are getting a scalar from a hash or array, then you can replace ${$ref} with $ref->:
    $array[0] $aRef->[0] $hash{KEY} $hRef->{KEY}
  • If the reference is in a hash or array, then you can drop the -> between the adjacent [0] and {KEY}:
    ${$aRef->[0]}[1] $aRef->[0]->[1] $aRef->[0][1] ${$aRef->[0]}{KEY} $aRef->[0]->{KEY} $aRef->[0]{KEY} ${$hRef->{KEY}}[1] $hRef->{KEY}->[1] $hRef->{KEY}[1] ${$hRef->{A}}{B} $hRef->{A}->{B} $hRef->{A}{B}

I hope that makes things much clearer.

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
Re: references quick reference (Re: push)
by a (Friar) on Apr 03, 2001 at 08:46 UTC
    And if I want to ref the entire hash/array (as in a foreach loop) what's the syntax?
    foreach my $array_elem ( @{ $href->{$key} } ) {
    works (I hope) but shouldn't there be a:
    foreach my $array_elem ( $href->{$key}->@ ) {
    sort of way to do this?


      I like the option you describe and I recall patches to implement that making it to p5p but I'm not sure whether they got accepted nor which version of Perl they will appear in.

              - tye (but my friends call me "Tye")
Re: references quick reference (Re: push)
by malaga (Pilgrim) on Jan 31, 2001 at 00:17 UTC
    thanks. i think i better get some cafeine and do some studying.
      make that caffeine.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://55329]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (5)
As of 2023-12-07 16:20 GMT
Find Nodes?
    Voting Booth?
    What's your preferred 'use VERSION' for new CPAN modules in 2023?

    Results (32 votes). Check out past polls.