#!/usr/bin/perl -w
######################################################################
# ref.pl
######################################################################
# Perl Power! - Michael Schilli 1998
######################################################################

# definition of ...
$scalar       = "SCALAR_VALUE";                #   scalar
$hash{"KEY"}  = "HASH_VALUE";                  #   hash
@array        = ("ARRAY_VALUE");               #   array

                                               # reference to ...
$scalar_ref     = \$scalar;                    #   scalar
$array_ref      = \@array;                     #   array
$hash_ref       = \%hash;                      #   hash
$code_ref       = sub { "RETCODE" };           #   code
$scalar_ref_ref = \$scalar_ref;                #   reference

print "data types: ",                          # determine types
      ref($scalar_ref), " ",
      ref($array_ref),  " ",
      ref($hash_ref),   " ",
      ref($code_ref),   " ",
      ref($scalar_ref_ref), "\n";

print "values:     ",                          # dereferenced ...
      $$scalar_ref,      " ",                  #   scalar reference
      @$array_ref,       " ",                  #   array reference
      %$hash_ref,        " ",                  #   hash reference
      &$code_ref,        " ",                  #   code reference
      $$$scalar_ref_ref, "\n";                 #   reference to
                                               #   scalar reference

