At 01:55 PM 8/6/01 -0400, Yacketta, Ronald wrote:
>Folks,
>
>I have this butt ugly little perl code here,
Your honesty is refreshing :-)
>would like some ideas on really
>streamlining it and cleaning it up.
>
>opendir DIR1, "../logs/set1" or die "Can't open ../logs/set1: $!";
>opendir DIR2, "../logs/set2" or die "Can't open ../logs/set2: $!";
>opendir DIR3, "../logs/set3" or die "Can't open ../logs/set3: $!";
>opendir DIR4, "../logs/set4" or die "Can't open ../logs/set4: $!";
>opendir DIR5, "../logs/set5" or die "Can't open ../logs/set5: $!";
>opendir DIR6, "../logs/set6" or die "Can't open ../logs/set6: $!";
>
>@Files1 = readdir DIR1;
>@Files2 = readdir DIR2;
>@Files3 = readdir DIR3;
>@Files4 = readdir DIR4;
>@Files5 = readdir DIR5;
>@Files6 = readdir DIR6;
>
>closedir DIR1;
>closedir DIR2;
>closedir DIR3;
>closedir DIR4;
>closedir DIR5;
>closedir DIR6;
>
>foreach (@Files1) {
> push(@logFiles1,"../logs/set1" . $_);
>}
>foreach (@Files2) {
> push(@logFiles2,"../logs/set2" . $_);
>}
>foreach (@Files3) {
> push(@logFiles3,"../logs/set3" . $_);
>}
>foreach (@Files4) {
> push(@logFiles4,"../logs/set4" . $_);
>}
>foreach (@Files5) {
> push(@logFiles5,"../logs/set5" . $_);
>}
>foreach (@Files6) {
> push(@logFiles6,"../logs/set6" . $_);
>}
This may seem a little obvious, but...
my %logFiles;
for my $key (1 .. 6) {
opendir DIR, "../logs/set$key" or die "opendir ../logs/set$key: $!\n";
push @{$logFiles{$key}}, map "../logs/set$key/$_",
grep !/^\.\.?$/, sort readdir DIR;
closedir DIR;
}
Now the filenames are in arrays which are referenced from the values of the
hash %logFiles (keys are 1 through 6, but maybe you want to use the
directory name instead). I took the liberty of removing the usually
useless directory entries and sorting, since you'll probably want them
sorted later.
--
Peter Scott
Pacific Systems Design Technologies
http://www.perldebugged.com
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]