use File::Basename; mkdir_p("some/long/path"); sub mkdir_p { return ((-d $_[0]) or (mkdir_p(dirname $_[0]) and mkdir $_[0], 0755)); }