in reply to version reporting beyond print "$]\n";

There's also use Config; print $Config{version}, "\n"; but I'd trust $] more.

If you really don't trust these, there are some features that can easily be tested with a few lines of code and are present in only from some versions: pack "U", pack "x!", pack "j", pack "x[L]", 3-arg open, stringstream open, \&Encode::is_utf, dump, [[::]] character classes, $^N, the EQ operator, open($fh, "+>", undef). However, some of these can cause surprising results if the perl you are using is compared with strange conffigure settings (like no perlio).