use Cwd qw(abs_path); use File::Basename qw(dirname); my $dir_parent = abs_path(dirname(__FILE__) . '/../'); #### use File::Spec; my $dir_parent = do { my ($vol, $dir, $file) = File::Spec->splitpath( File::Spec->rel2abs(__FILE__) ); # Go up 1 directory my @dirs = File::Spec->splitdir($dir); pop @dirs while (@dirs > 1 && $dirs[-1] eq ''); # Clean up pop @dirs if @dirs > 1; # Go up 1 real directory. $dir = File::Spec->catdir(@dirs); File::Spec->catpath($vol, $dir); }; #### use File::Basename qw(dirname); use File::Spec; my $dir_parent = File::Spec->rel2abs( File::Spec->catdir( dirname(__FILE__), '..' ) );