
| $ra = $a; | # reference to scalar | $$ra = 2; | # dereference scalar- ref | $ra = 1.6; | # reference to constant scalar |
| $rl = @l; | # reference to existing | $rl = [1,2,3]; | # reference to anonymous array | push (@$rl, "a"); | # Dereference | print $rl->[3] | # 4th element of array pointed to by $rl |
| $rh = %h; | # reference to hash |
| $rh = {"laurel" => "hardy", "romeo" => "juliet"}; | # ref to anon-hash |
| print keys (%$rh); | # Dereference |
| $x = $rh->{"laurel"}; | # Arrow notation to extract single element |
| @slice = @$rh{"laurel","romeo"}; | # Hash slice |
| $rs = &foo; | # reference to existing subroutine foo |
| $rs = sub {print "foo"}; | # reference
to anonymous subroutine # (remember the semicolon at the end) |
| &$rs(); | # dereference: call the subroutine |
| @a = @{foo()}; | # dereference the array
reference # returned by foo() |
| @foo = [1,3,4]; | # Assigning
an array-ref to an array # Use parentheses instead. |
| %foo = {"foo" => "bar"}; | # Assigning a hash-ref to a hash. # Use parentheses instead. |
| $foo = ($a, @b); |
# Identical to $foo = ($a, @b) # Assiging an enumerated list to a # scalar yields the last element (so, # $foo gets @b). Use [ ] if you need # an array reference |
$person = { # Anon. hash | |
| print $person->{age}; | # Print John's age |
| print $person->{children}->[0]->{age}; | # Print Mike's age |
| print $person->{children}[0]{age}; | # Print Mike's age,omitting
# arrows between subscripts |
|
use Data::Dumper; Data::Dumper->Dumper($person); # Or, require dumpVar.pl; main::dumpValue($person); |
|
eval { $c = $a / $b; die "Denominator cannot be negative" if ($b < 0); }; print "Run-time error: $@"; |