package MyProject::OSSpecific::base; use strict; use warnings; sub niceOSName { my $class=shift; die "$class does not implement an OS specific niceOSName() method"; } sub tempDir { die "I don't know how to find a temp directory"; } sub pathSep { return '/'; } sub installTo { die "Should not happen"; } # much more methods 1;