1

文字列を分割しようとしています"."が、配列には何もありません。ファイル名は"Head-First-Java-2nd-edition.pdf"分割後拡張子を抽出したいのですが、なぜ空の配列になっているのかわかりません。

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

2 に答える 2

7

ワイルドカードで分割しているため、分割により空のリストが表示されます.。ピリオドはメタ文字です。リテラルのピリオドで分割する場合は、エスケープする必要があります

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

また、サブルーチンを呼び出すための構文はNAME(LIST). プレフィックスの使用に&は、プロトタイプを回避するという点で、特定の隠された機能があります。詳しくはperldoc perlsubを読んでください。

于 2013-10-01T08:33:07.133 に答える
2

.正規表現では、 以外の任意の文字を意味します\n。リテラル.で分割するには、エスケープする必要があります。

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