use strict; use warnings; my $seperator = '/'; # Change this for a non-Unix compatible OS my @dirs = ("some/long/dir/path"); for my $path ( @dirs ) { my @path = split($seperator, $path); my $cat_path; for my $dir (@path) { $cat_path .= $dir; unless ( -d $cat_path ) { mkdir ( $cat_path ) || die "Can't mkdir '$cat_path': $!\n"; print "mkdir: created directory `$cat_path'\n"; } $cat_path .= $seperator; } }