1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| my %dispatch = (
map( { $_, 'data' } qw{ htm asp aspx nux mspx cfm html xhtml jhtml php php3 php4 shtml jsp php4 php5 pm }
),
map( { $_, 'image' } qw{ jpg jpeg png gif }
),
map( { $_, 'doc'} qw{ doc rtf pdf xls }
),
);
donc on push le fichier/adresse sur un des trois arrays contenu dans resultat selon son extension, et si l'extension est foireuse ou inconnu on le met dans le array $resultat{inconnu}. Pour parcourir
my @source = qw/ a.doc B.DOC, c.jpg, d.mp3 /;
my( %resultat );
for my $s( @source ) {
my ($ext = $s) =~ s/^.*?\.([^.]+)$/lc $1/e;
push @{$resultat{$dispatch{$ext} || 'iconnu'}}, $s;
}
for my $r (keys %resultat) {
print "$r\n";
for my $adr( @{$resultat{$r}} ) {
print "\t$adr\n";
}
} |
Partager