problem is different platforms have different perl verions
This is not a problem that a shell script can solve.
What you really
have to do is write your Perl script so that it will run under all the
perl versions you have to deal with. This, as a general rule, is not
hard, if you restrict yourself to using language features that are
explained in the 2nd edition of the camel book
(assuming all of the perl versions are 5.something; if you have to
support version 4, then it gets a bit harder.)
There are a handful of
exceptions, very special things that are hard to do with non-recent
versions of Perl, but they're obscure and mostly have to do with
Unicode, and you're not likely to run into them in an environment
where it's taboo to upgrade perl.
If you're having trouble getting certain parts of the Perl script
to work under
certain versions of perl, try posting a question to Perlmonks
about that: you'll get much better answers for Perl questions
around here than you will for shell script questions. Most of
us don't write shell scripts any more, because we write Perl
scripts instead.
Sanity? Oh, yeah, I've got all kinds of sanity. In fact, I've developed whole new kinds of sanity. Why, I've got so much sanity it's driving me crazy.
| [reply] |
I'm not sure I understand your reply. Anything you do in a shell script can be done in a perl script (except for setting environment variables in the shell that invokes the perl script -- you can only do that if you "source" a shell script).
If both windows and unix/linux systems are reading "Script1.pl" from the same disk/directory on your local network (assuming this script is already written to be OS-independent), and all you need to worry about is whether the version of perl running your script is recent enough, you can include a statement like this in the script:
require 5.006001; # die if we're running under an older perl version
On the other hand, if there really are different versions of the script targeted for different systems (or different versions of perl), you can always find a way to integrate these variations into a single script that runs properly in each environment, by checking the OS type and perl version, using perl's internal global variables (cf. perlvar), refactoring the code in a sensible way to simplify the branching for the different environments.
Anyway, I really can't figure out what you meant by this:
the main thing to do is to use same version of perl for any user independent of what they have in their machines
What people "have in their machines" (in terms of what version of perl is installed) is going to determine what happens when they run your script, regardless of how you write it or wrap it. If their version of perl is too old, either the script will die because you put a "require" statement for a minimum perl version number, or else (if you don't have that statement) it will die or do something bad because the older perl doesn't know what to do with your script. | [reply] [d/l] |