use File::Spec::Functions qw( catdir ); my @basedirs = qw( d1 e1 ); my @subdirs = qw( aaa aaa/xxx ); BASEDIR: for my $base ( @basedirs ) { SUBDIR: for my $sub ( @subdirs ) { my $dir = catdir( $base, $sub ); if ( !-d $dir ) { warn "$dir is missing! Please create it!\n"; #next BASEDIR; } } }