#!/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"; } #### 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.