salve ho una funzione molto semplice

@myDir = <*>;
foreach $myDir (@myDir) {
next if $myDir =~ /^\.\.?$/;
system("ls -l ".$myDir." | awk '{print \$9}'"."\n");
}

visualizza il nome dei file contenuti in diverse sottocartelle

però l'output viene visualizzato nel seguente modo:

testo1.txt
testo2.txt

testo3.txt

testo4.txt
testo5.txt
testo6.txt

visualizza uno spazio quando cambia cartella
cioè testo1 e testo2 appartengono ad una cartella, testo3 ad un'altra testo 4,5,6 ad un'altra ancora.

Ora se voglio eliminare gli spazi devo prima direzionare l'output di visualizza.pl su un altro file e poi usare il comando grep sul secondo file per eliminare gli spazii

sotto shell è

perl visualizza.pl > outputVis.txt

poi eseguo il grep

grep -v "^ *$" ./visualizza.pl > senzaSpazio.txt

come faccio ad avere lo stesso risultato direttamente modificando il codice di visualizza.pl
Vorrei che chiamando direttamente
perl visualizza.pl
mi togliesse gli spazii e mi redirezionasse l'output su un file.
consigli?
tks