#!/usr/bin/perl use strict; use warnings; my $dir = '/opt/DSPKG'; opendir my $dh, $dir || die "Can't open $dir: $!\n"; open my $out, '>', '/tmp/pkgtest' || die "Can't open pkgtest: $!\n"; foreach ( readdir $dh ) { print $out $_ . "\n" if -d "$dir/$_" && $_ !~ /^\.{1,2}$/; } close $out || die "Error closing pkgtest: $!\n";