Perl: Jak zatrzymać plik :: Znajdź wpisujący katalog rekurencyjnie?

Patrzyłem na PerlaFile::Find moduł i wypróbowałem go w następujący sposób:

#!/usr/bin/perl

use warnings;
use strict;

use File::Find;

find({wanted => \&listfiles,
        no_chdir => 1}, ".");


sub listfiles{
    print $File::Find::name,"\n";
}

Teraz, gdy go uruchomię, otrzymuję poniższe dane wyjściowe:

Noob@Noob:~/tmp$ perl test.pl 
.
./test.txt
./test.pl
./test1.txt
./hello
./hello/temp.txt

Teraz myślałem o tym, ustawiającno_chdir=>1 Sprawię, że mój kod nie wejdzie do żadnego katalogu, jeśli trafi na jeden. Ale wyjście wyraźnie pokazuje, że mój kod wchodzihello katalog i lista jego plików.

Jak więc zmienić swój kod, aby zachowywał się jakls i nie wprowadzaj żadnego katalogu. Dostaję też./ przed moimi plikami / katalogami można je usunąć?

Używam Perla 5.14.

questionAnswers(4)

yourAnswerToTheQuestion