munge @ARGV with warnings instead of dying

Also generalize the null device to File::Spec->devnull.