File::Basename module

 

File:Basename module

 

=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)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值