Thread Dateien mit opendir gruppiert einlesen
(4 answers)
Opened by MarkusH at 2016-10-06 21:49
Wenn readdir($dh) am Ende angekommen ist, bringen weitere Aufrufe erstmal nix. Ende ist Ende. Aber Du könntest mit
![]() Oder Du machst (anstatt das Verzeichnis mehrmals wiederholt komplett auszulesen) die Zuordnung nach Erweiterung in einem Lese-Abwasch, z.B. (ungetestet): Code (perl): (dl
)
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 31 32 #! /usr/bin/env perl use strict; use warnings; use 5.010; use Data::Dumper; my $path = '/path/to/dir'; my %files_by_ext; opendir my $dh, $path or die "opendir($path) failed: $!"; for my $entry ( readdir $dh ) { next if $entry =~ m/^\.\.?$/; my $ext = ( split m/\./, $entry )[-1]; next unless $ext; # push filename to HoA, key is filename's extension push @{ $files_by_ext{$ext} }, $entry; } closedir $dh; # check hash-of-arrays say Dumper \%files_by_ext; __END__ Last edited: 2016-10-06 23:46:07 +0200 (CEST) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |