in reply to Inappropriate ioctl for device using Phi.pm on system call

First, never put execution permission on a .pm!

For the probable cause of your error, have a look at the manual for the "system" function (perldoc -f system):

If you'd like to manually inspect "system"'s failure, you can check all possible failure modes by inspecting $? like this:
                   if ($? == -1) {
                       print "failed to execute: $!\n";
                   }
                   elsif ($? & 127) {
                       printf "child died with signal %d, %s coredump\n",
                           ($? & 127),  ($? & 128) ? 'with' : 'without';
                   }
                   else {
                       printf "child exited with value %d\n", $? >> 8;
                   }