Das Gegenstück zu den Zeigern in C sind in Perl die sogenannten Referenzen.
Referenzen gelten als einfache skalare Werte. Da die bereits vorgestellten
komplexen Datentypen Array und Hash nur skalare Werte enthalten dürfen,
muß man Referenzen verwenden, um einen Array oder Hash in einen weiteren
Array oder Hash zu verschachteln.
Beispiel 1:
require 'show.pl';
$a = 5;
&show(qw( \$a ));
&show(qw( ${\$a} ));
Ausgabe:
\$a = SCALAR(0x80d6074)
${\$a} = 5
Beispiel 2:
require 'show.pl';
$a = 5;
&show(qw( $\$a ));
&show(qw( $(\$a) ));
Ausgabe:
Scalar found where operator expected at (eval 1) line 1, at end of line
(Missing operator before ?)
$\$a =
Backslash found where operator expected at (eval 2) line 1, near "$(\"
(Missing operator before \?)
$(\$a) =
Beispiel 3:
require 'show.pl';
$a = 5;
$b = \$a;
$c = \$c;
&show(qw( $a ));
&show(qw( $$b ));
&show(qw( $$c ));
$$b = 7;
print "\n";
&show(qw( $a ));
&show(qw( $$b ));
Ausgabe:
$a = 5
$$b = 5
$$c = SCALAR(0x80d60b0)
$a = 7
$$b = 7