1

我正在尝试拆分一个字符串,"."但在数组中什么也没有。文件名是"Head-First-Java-2nd-edition.pdf"拆分后我想提取扩展名,但不知道为什么它给出空白数组。

my @fileInfo = split(/./, $filename);
 &logMsg("Array is: @fileInfo");
4

2 回答 2

7

拆分给出了一个空列表,因为您正在拆分通配符.。Period 是一个元字符,如果你想在字面上分割,你需要转义它

my @fileInfo = split(/\./, $filename);

此外,调用子程序的语法是NAME(LIST). 使用&前缀有一个隐藏的特性,因为它绕过了原型。在perldoc perlsub中阅读更多内容。

于 2013-10-01T08:33:07.133 回答
2

.在正则表达式中表示除 之外的任何字符\n。要拆分文字.,您需要对其进行转义:

split /\./, $filename;
于 2013-10-01T08:33:24.793 回答