DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   Perl (http://www.daniweb.com/forums/forum112.html)
-   -   How to modify this perl script and make it running in Linux , solaris and windowXP? (http://www.daniweb.com/forums/thread48624.html)

wxfjordan Jun 26th, 2006 1:18 am
How to modify this perl script and make it running in Linux , solaris and windowXP?
 
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";
}

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

wxfjordan Jun 26th, 2006 11:53 pm
Re: How to modify this perl script and make it running in Linux , solaris and windowXP?
 
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.


All times are GMT -4. The time now is 9:13 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC