http://qs321.pair.com?node_id=162007


in reply to system() on linux/win32

system returns a value of 0 when the command was successful. In your case, system returns 0 because it was successful so warn gets run. To solve the problem, check to see if the value is 0 like so:
system( $excel, $excelfilename) == 0 or warn ".....";
This should produce the right results. See the perlfunc on system for more information.