我见过很多关于使用Perl计算目录中特定文件的帖子,其中一个显示了这段代码
@filesInDirectory = glob("$directory$fileNameRegex"); $numberOfFiles = @filesInDirectory;
如果我遵循这个:
print LOGFILE $#filesInDirectory; print LOGFILE $numberOfFiles;
日志将有01.如果混淆是这样的:当我正在寻找的文件不存在时,为什么$ numberOfFiles 1而不是0?
$numberOfFiles
包含元素的数量@filesInDirectory
.由于@filesInDirectory
包含一个元素,$numberOfFiles
包含1
.
$#filesInDirectory
包含最后一个元素的索引@filesInDirectory
.由于@filesInDirectory
包含一个元素($filesInDirectory[0]
),$numberOfFiles
包含0
.
除非你搞砸$[
(不要!!),$#a
否则总是比@a
标量上下文少一个.