在Perl中,你可以得到與模式匹配的文件列表:如何在Perl中將變量的值用作glob模式?
my @list = <*.txt>;
print "@list";
現在,我想傳遞的圖案作爲一個變量(因爲它傳遞給函數)。但是這不起作用:
sub ProcessFiles {
my ($pattern) = @_;
my @list = <$pattern>;
print "@list";
}
readline() on unopened filehandle at ...
有什麼建議嗎?
永遠,永遠,永遠,永遠做到這一點。 「glob」運算符是正確的答案。 – friedo 2010-02-15 03:57:07
你說得對,glob是一個更好的答案。感謝您的更正。爲什麼「永遠,永遠,永遠」這樣做? – 2010-02-16 00:57:49
羅伯特,你應該儘可能避免使用字符串'eval';誰知道惡意數據可能以'$ pattern'結尾,特別是如果這是從用戶輸入派生的。即使不是惡意的,奇怪的東西進入「eval」可能會導致許多痛苦的錯誤。 – friedo 2010-02-19 17:13:23