\$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;