in reply to Passing values along with the called script

Scripts usually do not “call each other.”

Why not? Because there's a better way to do it. Build the various common functionality into one or more packages, then create scripts that invoke the routines and objects defined within the packages.

Once you're in a package-based environment, directives like use and require become readily-available to you. You're operating now in a single process (probably) and therefore the same instance of Perl. Now, you can use variables and other such things quite freely.

Yes, you can do things another way (TMTOWTDI™ ...), but always look-for what is the best available way in your particular situation. In other words, strive to look objectively at the goal and to consider all of the ways to fill it. Many's the time when I “jumped to a conclusion” and later discovered that I had just “jumped in the lake.” (Ooh, I hate it when that happens!)