Variables

$var

A simple scalar variable.

$p = $var

Now $p is a reference to scalar $var.

$$p

The scalar referenced by $p.

@var

An array. In scalar context, the number of elements in the array.

$var[6]

Seventh element of array @var.

$var[-1]

The last element of array @var.

$p = @var

Now $p is a reference to array @var.

$$p[6] or $p->[6]

Seventh element of array referenced by $p.

${$p[6]}

The scalar referenced by $p[6].

$p = $var[6]

Now $p is a reference to the seventh element of array @var.

$p = [1,3,'ape']

Now $p is a reference to an anonymous array with three elements.

$var[$i][$j]

$j-th element of $i-th element of array @var.

$#var

Last index of array @var.

@var[3,4,5]

A slice of array @var.

%var

A hash. In scalar context, true if the hash has elements.

$var{'red'} or $var{red}

A value from hash %var. The hash key may be specified without quotes if it is simple identifier.

$p = \%var

Now $p is a reference to hash %var.

$$p{'red'} or $p->{'red'}

A value from the hash referenced by $p.

${$p{'red'}}

The scalar referenced by $p{'red'}.

$p = {red => 1, blue => 2, yellow => 3}

Now $p is a reference to an anonymous hash with three elements.

@var{'a','b'}

A slice of %var; same as ($var{'a'},$var{'b'}).

$var{'a'}[1]

Multidimensional hash.

$var{'a',1, ... }

Emulated multidimensional hash (obsolete).

$c = &mysub

Now $c is a reference to subroutine mysub.

$c = sub { . . . }

Now $c is a reference to an anonymous subroutine.

&$c( args ) or $c->( args )

A call to the subroutine via the reference.

$MyPackage::var

Variable $var from package MyPackage.

Likewise @MyPackage::ary, and so on.

Variables that are not part of a package belong to the default package main.

$::var

The same as $main::var.

%MyPackage::

The package symbol table.

*var

Symbol table entry (typeglob). Refers to everything represented by var: $var, @var, %var, and so on.

*x = $y

Makes $x an alias for $y.

*x = *y

Makes all x aliases for y. Also: *x = "y".

*var{SCALAR} or *{$::{var}}{SCALAR}

The same as $var. Likewise, *var{ARRAY} is the same as @var. Also HASH, CODE, FORMAT, GLOB, and IO.

Note that $var, @var, %var, subroutine var, format var, and filehandle var all share the identifier var, but they are distinct variables.

Instead of the variable identifier, a block (see page 14) that returns the right type of reference can be used. For example, ${ $x > 0 ? $y[4] : $z }.

perldata, perlref.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset