假設我有5個文件:tmp1.txt
,tmp2.txt
,tmp3.txt
,temp1.txt
,temp2.txt
。在perl中使用wild字符讀取多個文件
現在有什麼方法可以打開多個文件並使用wilcards從它們中讀取。
實施例,
- 如果我寫
"t*.txt"
然後從每個文件中的數據應被讀出。 - 如果我寫
"tm*.txt"
那麼只能讀取3個文件中的數據。
假設我有5個文件:tmp1.txt
,tmp2.txt
,tmp3.txt
,temp1.txt
,temp2.txt
。在perl中使用wild字符讀取多個文件
現在有什麼方法可以打開多個文件並使用wilcards從它們中讀取。
實施例,
"t*.txt"
然後從每個文件中的數據應被讀出。"tm*.txt"
那麼只能讀取3個文件中的數據。是的,您可以使用glob
,假設這些文件存在於本地目錄中,並且該目錄中沒有其他具有相似名稱的文件。
print "Read which files? ";
chomp(my $glob = <STDIN>);
my @files_to_read = glob $glob;
當然,你能保證你不會看到任何其他文件通過過濾他們
my %valid = map { $_ => 1 } qw(tmp1 tmp2 tmp3 temp1 temp2);
@files = grep $valid{$_}, glob $glob;
第一條語句創建一個散列結果,其中的有效文件名鍵有一個真正的價值,其他的語句運行這檢查glob列表的元素。
您是否試過檢查perldocs?試過谷歌? – tuxuday