http://qs321.pair.com?node_id=790258

hnd has asked for the wisdom of the Perl Monks concerning the following question:

i was skimming through the camel book (just revising the long forgotten things) when something struck me.....
i made a small program that creates a reference to a scalar and a hash like this
use strict; use warnings; my $scalar_ref=*foo{SCALAR}; print "scalar ref defined\n" if defined $scalar_ref; #------------------------# my hash_ref=*foo{HASH}; print "hash ref defined\n" if defined hash_ref; __END__ output scalar ref defined
the output is right in this case as the compiler need not see a scalar to create a reference but it needs to see a hash to create a reference.... so for this i did
use strict; use warnings; my $scalar_ref=*foo{SCALAR}; print "scalar ref defined\n" if defined $scalar_ref; #------------------------# my %hash=(); my hash_ref=*hash{HASH}; print "hash ref defined\n" if defined hash_ref; __END__ output Name "main::foo" used only once: possible typo at ref.pl Name "main::hash" used only once: possible typo at ref.pl scalar defined
now the problem is... the compiler sees that we do hv a hash existing then too the statement hash ref defined doesnt crop up..... why is that????
=====================================================
i'am worst at what do best and for this gift i fell blessed...
i found it hard it's hard to find well whatever
NEVERMIND