Vla*_*ski -4 bash shell perl command-line command-line-arguments
我是脚本语言的新手,我有一个任务,说我需要从erl命令行中的给定参数中提取名称.
我这样调用Perl脚本
./perl.plx file.txt
Run Code Online (Sandbox Code Playgroud)
我只需得到那个file名字,而不是整个名字file.txt
Perl脚本的命令行参数出现在@ARGV,描述于perldoc perlvar.
解析文件名似乎微不足道,但外观可能会产生误导.但是,Perl附带了一个名为File::Basename处理您可能不会立即考虑的边缘情况的模块.简单split无法处理的一个边缘情况是除了最终后缀之外,点可能出现在文件名的其他位置.
您可以File::Basename通过perldoc File::Basename在命令提示符下键入来查看文档.
这是一个例子:
use stict;
use warnings;
use File::Basename qw(fileparse);
my ($fname, $dirs, $suffix) = fileparse($ARGV[0], qr/\.txt/);
print "Base file name is $fname\n";
print "Suffix is $suffix\n";
print "Path to $fname$suffix is $dirs\n";
Run Code Online (Sandbox Code Playgroud)
由于此模块附带Perl,因此您无需安装任何内容即可使用它.利用每个Perl发行版附带的核心Perl模块,您可以利用这些工具中包含的最佳实践和调试.