in reply to unless weirdness

Are you running 5.6.2 (or something even older)? I do see the same effects on 5.6.2. For 5.8.9 and 5.10.0, the following program
use strict; use warnings; die "Not enough disk space.\n" unless check_disk_space; sub check_disk_space{0;} __END__
gives me Bareword "check_disk_space" not allowed while "strict subs" twice when trying to run the program; if I replace the unless with if I only get it once. Still a difference, but no longer between compiling/not compiling.