aside from the ini_* functions, everything you have here is directly translatable into perl. So I'm not sure which line you are particularly having trouble with. variable assignments are almost nearly the same ('cept for the hashes), you can replace fputs with fwrites and the stripslashes with a regexp.