http://www.perlmonks.org?node_id=558207

wxfjordan has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks: I am a Perl beginner. Hope don't mind my simple question of Perl. I first time come to this site. So difficult find Perl good site. 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 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: $TotalNumberOf +Bytes\n"; }; print $@,"\ndone!"; } elsif ( $^O =~ /^linux/ ) { print "This is Linux OS!!!\n"; }
This perl script can execute successful in linux, 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 handle the first message in windowXP : Too late to run INIT block at C:/Perl/site/lib/Win32/API/Type.pm line +71.

Added code tags - dvergin 2006-06-28