用perl获取某一文件所在路径
,参考代码如下:
use Cwd 'abs_path'
print abs_path($0)."\n"
man Cwd
NAME
Cwd - get pathname of current working directory
SYNOPSIS
use Cwd
my $dir = getcwd
use Cwd 'abs_path'
my $abs_path = abs_path($file)用perl获取某一文件所在路径,参考代码如下:\x0d\x0a\x0d\x0ause Cwd 'abs_path'\x0d\x0aprint abs_path($0)."\n"\x0d\x0aman Cwd\x0d\x0aNAME\x0d\x0aCwd - get pathname of current working directory\x0d\x0aSYNOPSIS\x0d\x0ause Cwd\x0d\x0amy $dir = getcwd\x0d\x0ause Cwd 'abs_path'\x0d\x0amy $abs_path = abs_path($file)很明显上面两位的程序都无法正常使用,正确如下,
push @name_dir,$file if (-e "$directory/$file")解释,-e的文件测试后面要接真正能查询到文件(或者文件夹)的路径,而两位的-e后面展开为某个文件的文件名,这样对这个文件是否存在是从当前目录
开始的,所以一般的文件都无法找到,如果你在程序所在目录中放一两个文件名相同的文件,是可以被打印出来的,所以要记住,perl中这个文件的判断仅仅是对-e后面的路径所指示的文件是否存在的判断,把目录路径加在文件前,文件就可以找到了,我已经测试过了,自己改一下吧。
还有一个常识,为什么会输出几个点呢,在所有的文件夹中,有两个文件是你平时看不见的,这两个文件夹的名字是“.”和“..”分别代表当前目录和上层目录,在所有的目录中都存在,因此,你在判断的时候可以判断到这两个存在的文件夹,会被打印出来,至于这两个文件夹名有多好用,慢慢就会理解了。
评论列表(0条)