Perl学习13之路径获取模块: CwdFindBin和File::Basename
Posted pythonic生物人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl学习13之路径获取模块: CwdFindBin和File::Basename相关的知识,希望对你有一定的参考价值。
"pythonic生物人"的第20篇分享。
摘要
详细介绍perl中路径获取模块:Cwd、FindBin和File::Basename模块
目录
2、Cwd
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/perl
use 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绝对路径/$Script
print "$abs_path ";
执行结果
/home/study/perl/test#被执行脚本所在路径
findbin.pl
/home/study/perl/test
findbin.pl
/home/study/perl/
/home/study/perl/
/home/study/perl/
/home/study/perl/findbin.pl#返回执行脚本的路径/被执行脚本
3、File::Basename
#! /usr/bin/perl
use 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 ";
max /home/study/ .pl
max.pl /home/study
https://perldoc.perl.org/Cwd.html
https://perldoc.perl.org/FindBin.html
https://perldoc.perl.org/File/Basename.html
持续更新,欢迎您"关注"、"在看"、"分享"
以上是关于Perl学习13之路径获取模块: CwdFindBin和File::Basename的主要内容,如果未能解决你的问题,请参考以下文章
python 学习笔记 13 -- 经常使用的时间模块之time