in reply to CPAN Smoke Tests: Some platforms are meant to be broken

The tool you are looking for is Devel::AssertOS. If you use that in Makefile.PL, then CPAN testers will magically bail out if they're running the wrong platform. The use-devel-assertos script provides a convenient method for updating your Makefile.PL and bundling all the relevant modules.

Within your code, if you want to do different things depending on the platform - for example, you need to write completely different code on Windows and Unix for figure out who the current user is - then Devel::CheckOS is what you want.