Dude! Great call! And also this, from perlvar:
Finally, $? may be set to non-0 value if the external
program /cdrom/install fails. Upper bits of the
particular value may reflect specific error conditions
encountered by this program (this is program-dependent),
lower-bits reflect mode of failure (segfault, completion,
etc.). Note that in contrast to $@, $!, and $^E, which
are set only if error condition is detected, the variable
$? is set on each wait or pipe close, overwriting the old
value.
But it still doesn't explain why $! would start up with
Illegal Seek...
#!/home/bbq/bin/perl
# Trust no1!