Para obter um ambiente POSIX no Solaris, você precisa colocar o diretório de conformidade padrão ( /usr/xpg6/bin , o número pode ser diferente em versões diferentes do Solaris) no início de seu PATH , antes de /usr/bin ou /bin . Há um sh em conformidade com o POSIX lá (é ksh , de fato), e alguns utilitários reagem diferentemente dependendo do $PATH , mesmo que eles estejam em um único executável.
Codifique os diretórios:
my @xpg_dirs = glob('/usr/xpg[0-9]/bin /usr/xpg[0-9][0-9]/bin');
$ENV{PATH} = "$xpg_dirs[@xpg_dirs-1]:$ENV{PATH}" if @xpg_dirs;
ou impor um PATH padrão com getconf (o que estranhamente não está no módulo POSIX ):
$ENV{PATH} = 'getconf PATH';
chomp($ENV{PATH});