There are three problems.
1) You can make a reference out of hashes, arrays, scalars, functions, code, globs/IO and constants, but you can NOT create references to hash elements or array elements.
$ptr = \$hash{'name'};
is the same as
$ptr = \($hash{'name'});
which (in this case) is the same as
$ptr = \1;
which is a reference to a constant. Wouldn't
$key = 'name'; print $hash{$key};
suffice?
2) "$_" can be written as simply $_.
3) Do you think that loop will overwrite the value at $hash{'name'}? Numbers are automatically converted to strings and become just another key:
$hash{'name'} = 1; $hash{0} = 2; $hash{1} = 3; $hash{'1'} = 4; $\=$/; # Adds "\n" to every print. $,=", "; # Seperate printed fields with commas. print(keys(%hash)); # prints: name, 0, 1 (in random order) print($hash{'name'}); # prints: 1 print($hash{0}); # prints: 2 print($hash{1}); # prints: 4 print($hash{'1'}); # prints: 4
In reply to Re: pointer memory and dynamic memory
by ikegami
in thread pointer memory and dynamic memory
by pmtolk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |