0

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";
}

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

1
Contributor
1
Reply
2
Views
11 Years
Discussion Span
Last Post by wxfjordan
0

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.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.