\$foo == *foo{SCALAR}
\@foo == *foo{ARRAY}
\%foo == *foo{HASH}
\&foo == *foo{CODE}
\*foo == *foo{GLOB}
*foo{IO}
####
*foo = \"Scalar" # Note: constants are read-only
*foo = [ 'Array' ]
*foo = { foo => 'Hash' }
*foo = sub { print 'Subroutine' }
*foo = Symbol::gensym # GLOB
*foo = Symbol::geniosym # IO
####
sub method { print "\@_ is: @_\n" }
*foo = bless [ 'Array' ], 'main';
*foo{ARRAY}->method("It's an object now");
####
sub method { print "\@_ is: @_\n" }
*foo = bless [ 'Array' ], 'main';
(\@foo)->method("It's an object now");
####
use IO::Handle;
STDOUT->autoflush(1);
####
use IO::Handle;
use CGI;
open CGI, 'somefile' or die $!;
my $cgi = CGI->new;