我正在從一個目錄讀取數據,並且正在搜索文件名和擴展名。唯一接受的延期是in
和out
。如果我獲得積極的匹配,我將收集的信息添加到散列中。一個更簡單的方法,從一個目錄開始,構建一個文件名散列
假設該散列可以是這樣的:
#{
# filename1 => {
# in => 1|0
# out => 1|0
# },
# ...,
# filenameN => {
# in => 1|0,
# out => 1|0
# }
#}
我做上述所有使用這個片斷:
...
while (my $file = readdir INDIR) {
my ($file_name, $file_ext) = $file =~ /^(\w+)\.([^.]+)$/;
next if not($file_name and $file_ext);
next if not($file_ext =~ /in|out/);
$hash{$file_name}->{$file_ext} = 1;
}
...
我不知道是否有更好的方法達到相同的期望結果,也許即級聯不是兩個next if
聲明。
你有一些建議來簡化該片段嗎?
我遠離'unless'球迷,但很想在這裏使用它。 –
我同樣受到誘惑。也考慮過'如果!'。如果不是因爲我們捕獲變量,目前的設置會感覺很好,但我真的不確定我喜歡哪個。在回到最短的形式之前,我循環了他們。 – Miller