initial commit of perl implementation