http://www.perlmonks.org?node_id=373972


in reply to computed symbolic references

  1. The first concatenates $x and the string ::VERSION then symbolically dereferences, the second symbolically dereferences $x::VERSION
  2. $y is undefined because $x::VERSION is undefined, perhaps you meant ${ $y = ${ $x . '::VERSION' } }
  3. because you're passing it as the first argument to print which is expected to be a filehandle if it is not preceded by a comma
If you're interested in dynamically accessing the $VERSION package variable then check out UNIVERSAL::VERSION.
HTH

_________
broquaint