【发布时间】:2017-07-24 22:47:19
【问题描述】:
我是脚本语言的新手,我有一个任务说我需要从 erl 命令行中的给定参数中提取名称。
我是这样调用 Perl 脚本的
./perl.plx file.txt
我只需要得到 file 的名字,而不是整个 file.txt
【问题讨论】:
-
试试看
@ARGV,它是一个带有参数的数组。它在里面。 -
是的,但是如果我尝试使用 $ARGV[0] 它会返回 file.txt 并且它不是字符串类型,所以我不能使用分隔符拆分。所以就像我说的,它给了我整个 file.txt 而我只需要 file 的名称。
-
@ARGV仅包含字符串。这就是你对他们所做的。因此,如果您有$ARGV[0]和file.txt,那么您可以拆分该字符串my $name = (split /\./, $ARGV[0])[0];以使$name包含“文件”。 -
非常感谢@AntonH 代码有效。我之前尝试过
($name) = split('.', $ARGV[0]);,但没有成功,我不知道为什么。 -
因为字符“.”是正则表达式中的特殊字符,表示“任意字符”。要拥有它,您需要转义它,因此,
/\./
标签: bash perl shell command-line command-line-arguments