原帖地址:http://yesho.blogbus.com/c1615293/index_3.html
perl有句格言:There is more than one way to do it。意思就是任何问题用perl都有好几种解决方法。以前处理文件路径的时候都是自己写正则表达式,而用perl的模块来解决则更加迅速、准确。
1). File::Basename
有3个方法:fileparse、basename、dirname。
用法:
($name,$path,$suffix) = fileparse($fullname,@suffixlist);
$basename = basename($fullname,@suffixlist);
$dirname = dirname($fullname);
说明:
a) 方法fileparse是将一个文件的全路径拆成三部分,文件名、目录名和后缀,@suffixlist是给一个后缀的集合。例如
($base,$path,$type) = fileparse('\\virgil\\aeneid\\draft.book7', qr{\.book\d+});
则输出 $base ==> draft; $path ==> \virgil\aeneid\; $type ==> book7。
b) 方法basename和fileparse的输入格式一样,返回的是文件名加后缀。
c) 方法dirname返回文件目录名。
注意,dirname和fileparse第二个返回值的比较:
i) 目录结尾有无\;
dirname('\\virgil\\aeneid\\draft.book7') ==> \virgil\aeneid
fileparse('\\virgil\\aeneid\\draft.book7') ==> \virgil\aeneid\
ii) 输入参数为目录;
dirname('virgil\\') ==> .
fileparse('virgil\\') ==> virgil\
2). File::Spec::Functions
这个模块输出File::Spec类的方法,分为两类:
(1) 可直接调用:
canonpath||catdir||catfile||curdir||rootdir||updir||no_upwards||file_name_is_absolute||path
(2) 以 File::Spec->方法名的形式调用:
devnull||tmpdir||splitpath||splitdir||catpath||abs2rel||rel2abs||case_toleran
这里举几个常用的方法说明一下:
a) 方法catdir:将目录合并,
catfile('a','b','c') ==> a\b\c
b) 方法splitdir:与catdir相反,拆分目录
File::Spec->splitdir('a\\b\\c\\') ==>('a','b','c',' ') #注意最后有个空格
3). File::Path
有2个方法:mkpath和rmtree,分别为创建目录和删除目录。
perl语言本身自带了mkdir和rmdir,那为什么还要选用 mkpath和rmtree呢?自带的mkdir只能一次创建一级目录,而mkpath则可以一次创建多级;rmdir必须要求目录为空,而rmtree 则任意。总之,File::Path为我们提供了另一种创建和删除目录的机制,由用户自己选用。
说明:
a) mkpath(directory, 1, 0711);
第一个参数为目录名,第二个参数为一个bool值,为真的时候打印每次创建的目录,默认为假,最后一个参数为目录的权限。
b) rmtree(directory, 1, 1);
第一个参数为目录名,第二个参数为一个bool值,为真的时候打印删除文件时的一些信息,默认为假,最后一个参数也是一个bool值,为真的时候对没有删除权限的文件直接跳过。
分享到:
相关推荐
4. **清理配置**:如果模块在`@INC`路径中留下了目录,你需要手动从`perl5lib`或其他配置文件中删除这些条目。此外,还要检查`.bashrc`、`.profile`或其他Shell配置文件,删除任何与该模块相关的环境变量设置。 5. ...
Perl是一种强大的脚本编程语言,广泛用于文本处理、系统管理任务和网络编程。在Perl的开发和构建过程中,`dmake`是一个常用的构建工具,它模仿了Unix环境下的`make`,帮助用户编译和链接Perl模块。在Windows环境下,...
例如,如果你想要将一个文件路径列表放到剪贴板上,可以这样做: ```perl my @files = ("file1.txt", "file2.txt", "file3.txt"); Win32::Clipboard::Set(\@files, 'CF_HDROP'); ``` 在这个例子中,`CF_HDROP`是...
### Windows 下安装 Perl 模块的方法讨论 #### 手动编译方式 手动编译是安装 Perl 模块的一种常用方法,在 Windows 平台上尤其适用。这种方法的优点在于它能够适用于几乎所有的 Perl 模块,因此被称为“通吃所有...
标题中的"ActivePerl安装文件"表明这是一个用于安装ActivePerl的程序包,而描述中的"ActivePerl-5.16.3.1604-MSWin32-x64-298023"则具体指出了这是ActivePerl的特定版本,即5.16.3,针对64位的Windows操作系统。...
4. 使用PPM的"install"命令,指定模块文件的路径进行离线安装。例如,如果有一个名为"MyModule.ppd"的文件,可以运行"ppm install path/to/MyModule.ppd"。 5. 重复此步骤,直到所有依赖的Perl模块都成功安装。 6. ...
/usr/bin/perl`或类似路径开头,这是Shebang行,告诉系统使用哪个解释器来执行文件。 - 接下来,可以使用`use strict;`和`use warnings;`来开启严格的语法检查和警告,有助于编写更健壮的代码。 - 之后,可以定义...
cpan配置文件是一个非常重要的文件,它可以帮助我们配置perl模块的安装路径。通过修改cpan配置文件,我们可以使用本地镜像来安装perl模块,从而提高安装速度。 4. perl模块的自动安装 perl模块的自动安装是一个非常...
"strawberry-perl-5.32.1.1-64bit.msi" 文件就是Strawberry Perl的一个64位版本,它包含了Perl解释器、标准库以及一些常用的Perl模块,使得用户能够在Windows系统上轻松地运行和开发Perl程序。 在使用QTxlsx库之前...
请确保你的Perl环境路径正确,这样Perl运行时就能找到这些模块。 总的来说,安装和配置Perl模块是部署Bugzilla的关键步骤,正确的依赖管理能确保Bugzilla的稳定运行。一旦所有模块就绪,你就可以按照Bugzilla的官方...
在Linux环境中,Perl是一种强大的脚本编程语言,广泛用于系统管理、网络编程和文本处理等任务。`IPC::Cmd`是Perl的一个模块,它提供了一种简单且灵活的方式来执行外部命令并获取其输出。在没有互联网连接的情况下,...
在计算机编程领域,Perl是一种广泛使用的脚本语言,以其强大的文本处理能力和灵活的语法结构而闻名。本文旨在详细介绍如何在特定环境下(如Genesis系统)配置Perl环境,并提供一些基本的使用指南。 #### 二、...
创建一个扩展名为`.pl`的文件,写入一些简单的Perl代码,如`print "Hello, Perl!\n";`,然后在命令行中运行`perl your_script.pl`,你应该能看到输出。 Perl语言的核心特性包括: - **灵活性**:Perl的语法灵活...
如果需要处理其他文件,只需将新文件路径替换掉`xy.txt`,并运行程序即可。 总结来说,"fg.rar_文件分割 perl" 提供了一种用Perl解决大文本文件分割问题的方法。通过理解Perl的文件操作和正则表达式,我们可以有效...
通过结合其他Perl模块,如`File::Find`,可以实现更复杂的文件系统操作和报告生成。 总的来说,Perl提供了一种高效且灵活的方式来分析文件系统的结构和内容,尤其适用于需要自定义逻辑或自动化任务的情况。通过掌握...
在使用这些 Perl 模块时,你需要注意一些常见的问题,例如文件路径的正确指定、处理大文件时的内存管理以及错误处理等。同时,理解 Excel 文件的结构(如工作表、工作簿、行、列的概念)也是很重要的。此外,如果你...
标题 "perl oracle dbd zip" 暗示我们关注的是使用 Perl 语言连接 Oracle 数据库的 DBD (Database Driver) 模块,并且这个模块可能被打包成了 ZIP 文件。DBD::Oracle 是 Perl 用来与 Oracle 数据库进行交互的一个...
一旦安装完毕,ActivePerl将提供一个完整的Perl环境,包括Perl解释器、核心模块和一些常用的第三方模块。用户可以通过命令行或者集成开发环境(IDE)来编写和运行Perl脚本。ActivePerl还支持CPAN(Comprehensive Perl ...
在使用Perl GetFiles时,用户可能需要配置一些参数,比如网页URL、保存文件的前缀或后缀等。这可能通过命令行参数传递,或者在脚本内部设置默认值。Perl的命令行参数处理可以通过`@ARGV`数组实现,而配置选项的解析...