Not posting whole thing to avoid severe criticism from some commenters . etc.
If you avoid criticism, you avoid learning. If you avoid learning, all you ask is to help you out of a fix. I might do that for some time, but not very long. I'm not going to help you over the road everytime you want to go to the bakery.
That said, in no post of you in this thread which contains that purported BEGIN block from manageusers does this variable show up. Except in this last one. So things are changing, but I won't play a pointless shell game.
You need not import a variable from another package to use it. You can use it also fully qualified in your code, in this case as $manageusers::GetLoggedOnId - if this variable really exists in that package (who knows? It looks like you don't either). If it doesn't exist there and you use it anyways, it will be created. Will that be of any use? I don't know and won't guess.
You could, instead of posting the entire fluff here, stick it onto tultalk's scratchpad. Eventually somebody will look over it and tell you what's wrong.
Padre also says the function in question is not exported by manageusers.
- use manageusers qw(GetLoggedOnId) imports a function
- use manageusers qw($GetLoggedOnId) imports a scalar variable
- use manageusers qw(%GetLoggedOnId) imports a hash variable