Chinaunix

标题: File::Spec [打印本页]

作者: gunguymadman    时间: 2010-05-09 14:15
标题: File::Spec
use File::Spec;


该模块功能:实现简单的文件名操作

此模块并不关心文件是否存在,只是处理传进来的路径,目录名,文件名等字串


$x=File::Spec->catfile('a', 'b','c');
此时变量$x的结果为

a/b/c

use File::Spec::Functions
$x=catfile('a','b','c');


连接两个或多个目录名形成一个完整的路径:
$path = File::Spec->catdir( @directories );
连接一个或多个目录加一个文件名生成一个文件路径
$path = File::Spec->catfile( @directories, $filename );
得到当前路径
$curdir = File::Spec->curdir();

得到devnull的路径
print File::Spec->devnull(),"\n";
结果
/dev/null
打印根目录
[root@supersun perl]# perl -MFile::Spec -e 'print File::Spec->rootdir(),"\n"'
/

打印临时文件目录
[root@supersun perl]# perl -MFile::Spec -e 'print File::Spec->tmpdir(),"\n"'
/tmp

测试文件路径名是否是绝对路径
[root@supersun perl]# perl -MFile::Spec -e 'print File::Spec->file_name_is_absolute("/home/dd.cc"),"\n"'
1

提取PATH变量
@PATH = File::Spec->path()
join与catfile函数功能相同
将路径分解为 卷 目录 文件
($volume,$directories,$file) = File::Spec->splitpath( $path );
分离目录
@dirs = File::Spec->splitdir( $directories )
分离路径
$full_path = File::Spec->catpath( $volume, $directory, $file );

作者: wxlfh    时间: 2010-05-09 15:59
不错,学习了。
这个模块是平台相关的,它会智能地选取当前操作系统的文件标识分隔符。如Linux下为"/",而Windows下默认为"\",尽管它也识别"/"。
作者: liyangole    时间: 2010-05-10 08:42
学习中




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2