Port of perl5 module of same name