in reply to The problem of "the" default shell

Also, there is ExtUtils::Command, which has lots of unixish commands, as needed by ExtUtils::MakeMaker.

Its interface is a tiny bit ugly, as its routines expect all parameters to come in via @ARGV, but there also is Shell::Command which wraps these subroutines in a nicer way.