The first is appending '::VERSION' to the value of $x whereas the second is going to look for the variable $VERSION in the package 'x' - it will not expand $x separately.
Because there is no variable $x::VERSION defined
Because you missed the semicolon after the first print statement.
Snippets of code should be wrapped in
<code> tags not<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).