File::Basename module
2012-05-28 23:21
483 查看
File:Basename module
1、使用说明
(1)File::Basename模块有三个参数,basename提取的是最后一个斜线(/)之后的内容,dirname提取的是最后一个斜线(/)之前的内容,前面的俗称文件名,后面的俗称文件路径。Fileparse提取的是文件名后缀,需要事先指定,比如 .pl .txt .gz.
(2)=1=和=2=等价,是最常用的情况,当调用File::Basename模块时,同时引入了三个函数。要是不想引入函数或者只引入某个函数,那么就是情况=3,4,5=了,请注意=1=和=5=的区别。
注:为了以后调用方面,在什么情况下都不使用三个函数名是可取的,那么就可以大胆的使用=1=,不过后面的几种情况要明白,有时候要看别人的程序,不至于不懂是什么意思。
(3)=4,5=的情况下,调用函数要用全称,如:
注:主意区分模块中的大小写,写错了可就麻烦了,比如use File::Basename;写成use File::basename;调用就要失败了。
2、使用实例
(1)代码
====out
(2)代码功能
从一个路径中提取文件路径、文件名和文件后缀。
(3)注意事项
@--@后缀没有匹配上时,fileparse和basename提取的内容是一样的,都是最后一个斜线后面的内容,但是fileparse和dirname提取的内容会差一个”/”,这个是要小心的内容,perldoc并没有说明这一点。这个可以用以下语句实验一下:
@--@后缀匹配上的时候,也就是源代码的情况。fileparse和basename提取的内容是一致的,但是不是斜线后面的全部内容,是去掉匹配上的后缀后的内容。这个也是要小心的。fileparse和basename和没有匹配上情况一致。还有一个是后缀,事先list然后提取,不list和没有匹配上的情况是一致的。
reference:参考了perl中国上的内容(http://www.perlcn.com/perlbc/perljj/346.html)。
=1= use File::Basename; =2= use File::Basename qw/basename, dirname, fileparse/ =3= use File::Basename qw/basename/; =4= use File::Basename qw//; =5= use File::Basename ();
1、使用说明
(1)File::Basename模块有三个参数,basename提取的是最后一个斜线(/)之后的内容,dirname提取的是最后一个斜线(/)之前的内容,前面的俗称文件名,后面的俗称文件路径。Fileparse提取的是文件名后缀,需要事先指定,比如 .pl .txt .gz.
(2)=1=和=2=等价,是最常用的情况,当调用File::Basename模块时,同时引入了三个函数。要是不想引入函数或者只引入某个函数,那么就是情况=3,4,5=了,请注意=1=和=5=的区别。
注:为了以后调用方面,在什么情况下都不使用三个函数名是可取的,那么就可以大胆的使用=1=,不过后面的几种情况要明白,有时候要看别人的程序,不至于不懂是什么意思。
(3)=4,5=的情况下,调用函数要用全称,如:
my $name = “/usr/local/bin/perl”; my $basename=File::Basename::basename $name; my $dirname = File::Basename::dirname $name;
注:主意区分模块中的大小写,写错了可就麻烦了,比如use File::Basename;写成use File::basename;调用就要失败了。
2、使用实例
(1)代码
#!/usr/bin/perl use strict; use warnings; use File::Basename; my $fullname = '/ifs5/ST_COMG/USER/yanzengli/other/perl.debug.pl'; my @suffixlist = qw(.exe .pl .txt); my ($name, $path, $suffix) = fileparse ($fullname, @suffixlist); print "name = $name\n"; print "path = $path\n"; print "suffix = $suffix\n"; $name = fileparse ( $fullname, @suffixlist); print "name = $name\n"; my $Basename = basename ( $fullname, @suffixlist ); print "Basename = $Basename\n"; my $dirname = dirname ($fullname); print "dirname = $dirname\n";
====out
name = perl.debug path = /ifs5/ST_COMG/USER/yanzengli/other/ suffix = .pl name = perl.debug Basename = perl.debug dirname = /ifs5/ST_COMG/USER/yanzengli/other
(2)代码功能
从一个路径中提取文件路径、文件名和文件后缀。
(3)注意事项
@--@后缀没有匹配上时,fileparse和basename提取的内容是一样的,都是最后一个斜线后面的内容,但是fileparse和dirname提取的内容会差一个”/”,这个是要小心的内容,perldoc并没有说明这一点。这个可以用以下语句实验一下:
my $fullname = '/ifs5/ST_COMG/USER/yanzengli/other/perl.debug.pl.gz';
@--@后缀匹配上的时候,也就是源代码的情况。fileparse和basename提取的内容是一致的,但是不是斜线后面的全部内容,是去掉匹配上的后缀后的内容。这个也是要小心的。fileparse和basename和没有匹配上情况一致。还有一个是后缀,事先list然后提取,不list和没有匹配上的情况是一致的。
reference:参考了perl中国上的内容(http://www.perlcn.com/perlbc/perljj/346.html)。
相关文章推荐
- GetModleFileName和GetModuleBaseName的区别
- MFC函数GetModuleFileName():获得应用程序目录绝对路径
- GetModuleFileName
- GetModuleFileName
- VC中使用GetModuleFileName获取应用程序路径(整理)
- 获取当前目录用GetCurrentDirectory()与从GetModuleFileName()分离之异同
- 获取文件的绝对路径, GetCurrentDirectory()和GetModuleFileName()函数的区别
- 用GetModuleFileName获取程序当前执行文件名
- 《Windows API巡礼》---GetCurrentDirectory和GetModuleFileName
- 获取程序路径的方法.\\,GetCurrentDirectory与GetModuleFileName的区别
- vc GetModuleFileName的运用
- Linux下GetModuleFileName的四种写法
- 路径参数函数:路径的获取(GetModuleFileName)和拆分(_splitpath)
- GetModuleFileName
- 利用 GetModuleFileName获取exe文件路径,,以显示bmp, jpg, png图片
- GetCurrentDirectory()和GetModuleFileName()函数的区别
- 获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName
- GetCurrentDirectory and GetModuleFileName
- GetCurrentDirectory()和GetModuleFileName()函数的区别
- Launch screen interface file base name 对导航栏和标签栏适配的作用