1
我想使用文件從音樂結構的目錄中提取值::查找::規則,我有困難得到每張專輯如果存在,例如,如果一張專輯的總盤包含3個子目錄DISC1,DISC2,DISC3 - 總盤值應該是3,如果我之前用grep這些目錄的「for」語句它得到的總所有的發現,如果我嘗試內的「for」語句它計算在一個一次。如何提取每張專輯的總盤數。謝謝。如何計算目錄和取得的最大數值
use autodie;
use strict;
use warnings;
use File::Find::Rule;
use File::Spec;
my $dir = 'D:\Test';
$dir =~ s#\\#/#g;
my @fd = File::Find::Rule->directory()
->name(qr/\(\d+\)/)
->in($dir);
my $grep_totaldiscs = grep /DISC\d+/, @fd;
print "$grep_totaldiscs\n";
for my $fd (@fd) {
my ($genre, $artist, $album, $disc) = (File::Spec->splitdir($fd))[2..5];
my ($discnumber, $totaldiscs);
if ($fd =~ /DISC(\d+)/) {
$discnumber = $1;
$totaldiscs = $1 if (defined($totaldiscs) < $1);
print "$album $totaldiscs\n";
}
}
馬丁,非常感謝您的幫助。我測試了你的建議,它打印了包含光盤編號但是值爲1的所有找到的目錄。我不擅長使用散列鍵查看是否應該更正任何內容,但我會繼續測試。 – thebourneid
我認爲我有錯誤的方法 - 這可能是問題的一部分。現在糾正了。 –
現在很完美。非常感謝。 – thebourneid