in reply to What does '::' mean in constructs '$::foo' and '@::foo'?

$Foo::Bar::baz refers to the package variable $baz in the namespace Foo::Bar.

Similarly, $::baz refers to the package variable $baz in the root namespace.

The default namespace, main, is an alias for the root namespace. So unless you have a package declaration changing the current namespace from the default, $::baz refers to package variable $baz in the current namespace.

Unless he used a package statement, I'm not sure why he used %::man instead of %man. My only guess is that it was to avoid the possibility of referencing a lexical (my) variable named %man by accident.