Hello All:

I want this perl script to run in Linux, solaris and windowXP. How to modify this script and make it running in different OS.

Hope some Perl senior help me.

Thanks!!!!

#!/usr/bin/perl -w

use Win32:: DriveInfo;

if ( $^O =~ /^(MS)?Win/ )
{

$TotalNumberOfFreeBytes = (Win32:: DriveInfo:: DriveSpace('c:'))[6];
$TotalNumberOfBytes = (Win32:: DriveInfo:: DriveSpace('c:'))[5];

print "This is $^O \n";
print "Total Free: $TotalNumberOfFreeBytes\tTotal size: $TotalNumberOfBytes\n";

}
elsif ( $^O =~ /^linux/ )
{
print "This is Linux OS!!!\n";
}

:!::!::!::!::!:

I have modified like this:

#!/usr/bin/perl -w

if ( $^O =~ /^(MS)?Win/ )
{
eval{
require Win32:: DriveInfo;

$TotalNumberOfFreeBytes = (Win32:: DriveInfo:: DriveSpace('c:'))[6];
$TotalNumberOfBytes = (Win32:: DriveInfo:: DriveSpace('c:'))[5];

print "This is $^O \n";
print "Total Free: $TotalNumberOfFreeBytes\tTotal size: $TotalNumberOfBytes\n";
};
print $@,"\ndone!";
}
elsif ( $^O =~ /^linux/ )
{
print "This is Linux OS!!!\n";
}


But print out a message when I execute this Perl script in windoowXP.

Too late to run INIT block at C:/Perl/site/lib/Win32/API/Type.pm line 71.
This is MSWin32
Total Free: 26845294592 Total size: 31461662720

done!


How to solve the first message :

Too late to run INIT block at C:/Perl/site/lib/Win32/API/Type.pm line 71.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.