Perl学习13之路径获取模块: CwdFindBin和File::Basename

Posted pythonic生物人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl学习13之路径获取模块: CwdFindBin和File::Basename相关的知识,希望对你有一定的参考价值。

"pythonic生物人"的第20篇分享Perl学习13之路径获取模块: Cwd、FindBin和File::BasenamePerl学习13之路径获取模块: Cwd、FindBin和File::Basename



摘要

详细介绍perl中路径获取模块:Cwd、FindBin和File::Basename模块

目录

1、FindBin
$Bin
$Script

2、Cwd 

getcwd() cwd() fastcwd() fastgetcwd()
abs_path

3、File::Basename

4、参考资料



正文开始啦



1、FindBin

  • $Bin

返回被执行的脚本绝对路径;

  • $Script

返回被执行的脚本名称;




2、Cwd 

  • getcwd() cwd() fastcwd() fastgetcwd()

Cwd 模块默认载入以上四函数,返回执行脚本的路径;

例如您在/home/test 下执行了perl hello.pl,则以上四函数均返回/home/test;

  • abs_path

需要自己载入,即 use Cwd qw(abs_path);

abs_path($file) 返回绝对路径/$file

例如,

#!/usr/bin/perluse strict;use warnings;
use FindBin qw($Bin $Script $RealBin $RealScript);#use Cwd qw(abs_path);use Cwd;#默认导入函数 cwd(), getcwd(), fastcwd()及fastgetcwd()use Cwd qw(abs_path);

print "$Bin ";#$Bin 返回脚本的绝对路径print "$Script ";#$Script返回脚本名字print "$RealBin ";print "$RealScript ";
#getcwd() cwd() fastcwd() fastgetcwd() 获取当前"执行程序"的路径my $dir = getcwd();my $dir1 = cwd();my $dir2 = fastcwd();my $dir3 = fastgetcwd();print " ";print "$dir ";print "$dir1 ";print "$dir2 ";print "$dir3 ";
print " ";my $abs_path = abs_path($Script);#返回$Script绝对路径/$Scriptprint "$abs_path ";


执行结果

cd /home/study/perl/#执行脚本的路径
perl test/findbin.pl
/home/study/perl/test#被执行脚本所在路径
findbin.pl
/home/study/perl/test
findbin.pl
/home/study/perl/#返回执行脚本的路径
/home/study/perl/
/home/study/perl/
/home/study/perl/
/home/study/perl/findbin.pl#返回执行脚本的路径/被执行脚本


3、File::Basename

File::Basename模块拆分路径
例如,path.pl
#! /usr/bin/perluse strict;use warnings;
use File::Basename;my $path = $ARGV[0];my($filename, $dirs, $suffix) = fileparse($path,qr/.[^.]*/);#以上分别为文件名,文件绝对路径,文件后缀名print"$filename $dirs $suffix ";
my $filename1=basename($path);#默认返回带后缀文件名my $dirname1=dirname($path);#返回绝对路径print "$filename1 $dirname1 ";
perl path.pl /home/study/max.pl
max     /home/study/    .pl
max.pl  /home/study 


4、参考资料
https://perldoc.perl.org/Cwd.htmlhttps://perldoc.perl.org/FindBin.htmlhttps://perldoc.perl.org/File/Basename.html
同系列文章













Perl学习13之路径获取模块: Cwd、FindBin和File::BasenamePerl学习13之路径获取模块: Cwd、FindBin和File::Basename持续更新,欢迎您"关注"、"在看"、"分享"Perl学习13之路径获取模块: Cwd、FindBin和File::BasenamePerl学习13之路径获取模块: Cwd、FindBin和File::Basename


以上是关于Perl学习13之路径获取模块: CwdFindBin和File::Basename的主要内容,如果未能解决你的问题,请参考以下文章

python 学习笔记 13 -- 经常使用的时间模块之time

perl学习记录2-时间日期获取之localtime和time

perl 模块的创建以及制定perl 模块的路径

如何找出 Perl 模块的安装位置?

Perl 无法识别 root 用户的模块/模块路径

perl 处理文件路径的一些模块