in reply to Can you create *real* global variables?
What's to solve? Are you asking why the package variables $main::V1 and $main::V2 aren't defined when foo::fetchvar() is called?
That's because they were never set. Instead, you set the lexical variables (of file scope) $V1 and $V2.
Change the my declarations for $V1 and $V2 to our and your code will do what (I suppose) you expect it to do.
Anno