Hi all,
Am wanting to change my Perl scripts to get it to run on several UNIX
flavours and Windows. At the moment, the only way I can think of how to
accomplish that is always having the following checks on each and every sub
that I have.
Can anyone please suggest if there is a better way of doing this besides
what am doing now? Am not sure whether creating a module for each OS to use
is the solution although I don't know how to create a module anyway. I found
one tutorial and get lost somewhere along the way on how to create a module
... :-)
if ($^O eq 'MSWin32') {
system "dir $ARGV[0]";
}
elsif ($^O eq 'solaris') {
system "ls -l $ARGV[0]";
}
elsif ($^O eq 'AIX') {
system "ls -l $ARGV[0]";
}
else {
warn "$0: WARNING: Program might not work on '$^O'\n";
}
Anyway, the other solution that am looking at is creating another file that
contains all the function calls and then I make the OS specific commands on
those file/s instead of the Perl script. For example, if I have a Perl
script that simply contains run_df(), then the run_df() sub are in a file
called subs.aix or subs.solaris depending on the value of $^O and each subs
file should contain for example as below:
subs.aix:
run_df()
{
df -g;
}
subs.solaris:
run_df()
{
df -h;
}
So if this is possible, then at least am not changing the Perl script or do
not need to which makes it easier since I only need to change the subs file?
Is this possible or am I being crazy? I don't know how else to explain what
am wanting to do. Anyway, hopefully someone can understand what I mean and
provide some guidance.
Thanks in advance.