@H_404_6@http://stackoverflow.com/questions/5703705/print-current-directory-using-perl?rq=1
@H_404_6@
@H_404_6@1)
@H_404_6@The following get the script's directory,which is not the same as the current directory. It's not clear which one you want.
use Cwd qw( abs_path );
useFile::Basename qw( dirname ); say dirname(abs_path($0));@H_404_6@or
usePath::Class qw( file ); say file($0)->absolute->dir;@H_404_6@or
useCwd qw( abs_path );@H_404_6@The middle one handles symlinks different than the other two,I believe. @H_404_6@ @H_404_6@2) @H_404_6@To get the current working directory (pwd on many systems),you could use cwd() instead of abs_path:
use Path::Class qw( file ); say file(abs_path($0))->dir;
useCwd qw();@H_404_6@Or abs_path without an argument:
my $path =Cwd::cwd();
print "$path\n";
useCwd qw();@H_404_6@See the Cwd docs for details. @H_404_6@To get the directory your perl file is in from outside of the directory:
my $path =Cwd::abs_path();
print "$path\n";
useFile::Basename qw();@H_404_6@See the File::Basename docs for more details. @H_404_6@ @H_404_6@3) @H_404_6@You could use
my($name, $path, $suffix)=File::Basename::fileparse($0);
print "$path\n";
FindBin
:
use FindBin '$RealBin';@H_404_6@
print "$RealBin\n";
FindBin
is a standard module that is installed when you install Perl. To get a list of the standard pragmatics and modules,see perldoc perlmodlib
.
@H_404_6@
@H_404_6@完!