The credentials are stored like this so that the processing scripts can be checked into github without credentials leaving the customer site.
"like this" meaning? In separate files, in .pm files, in exported package scalars? Depending on how much you can change, it might be easier to store the values in a hash in the first place:
our @Export = ( %credentials );
our %credentials = ( User => 'Joe', Password => 'Secret123' ...);
# or: (User => $User, Password => $Password ...); if you want to still
+ define the scalars
Or even better, store them as proper configuration files with whatever format you want.
It looks like your modules are supposed to export all their variables (although you used @Export rather than @EXPORT). If that's the case, you should use require rather than use, so that you don't import each time and overwrite the $User, $Password... in your calling package.