In WWTP #1, we have two method calls. The first, $one->two(); calls two() in whatever package name is in $one, in this case, main, so main::two is called. The second print just calls one::two. You're not using @_, so what's passed as an argument isn't relevant.
In WWTP #2, you are using soft references. $one is two, $two is three and $three is four. So, $$$one (which can also be written as $$${"one"}) is four.
In WWTP #3, you first assign the %:: (which is the main stash) to %$one::, the stash of two namespace. Then you print the hash %$one (no relation to %$one::) in scalar context. This results in 0, because %$one is empty. Then you assign %:: to %$one, and you print that hash in scalar context. A non-empty hash in scalar context gives you a string with the number of used buckets and the number of allocated buckets, separated by a slash, as documented in perldata.
Abigail
In reply to Re: What will this print?
by Abigail-II
in thread What will this print?
by staunch
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |