rewritten in perl