/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Liste over undermapper
Fra : Christian Dannesboe


Dato : 28-11-00 01:02

Jeg kan ikke få perl til at liste alle de undermapper der er ved en
givet lokation

fx /home/mig/

Jeg kan med "system ls -l /home/mig/ | grep dwr" få alle mapperne frem,
men jeg kan ikke finde ud af at få svaret tilbage..

Er der nogle der kan hjælpe

Christian@Dannesboe.dk

 
 
Thomas Bjørn Anderse~ (28-11-2000)
Kommentar
Fra : Thomas Bjørn Anderse~


Dato : 28-11-00 01:06

Christian Dannesboe <Christian@Dannesboe.dk> writes:

> Jeg kan ikke få perl til at liste alle de undermapper der er ved en
> givet lokation
>
> fx /home/mig/
>
> Jeg kan med "system ls -l /home/mig/ | grep dwr" få alle mapperne frem,
> men jeg kan ikke finde ud af at få svaret tilbage..

Læs perldoc -f readdir og brug så -d testen som beskrevet i perldoc
perlfunc.

Thomas
--
Thomas Bjorn Andersen, bjorn@daimi.au.dk
+++ATH

wojci (28-11-2000)
Kommentar
Fra : wojci


Dato : 28-11-00 12:44

In article <3A22F5EE.879A68E3@Dannesboe.dk>, "Christian Dannesboe"
<Christian@dannesboe.dk> wrote:

> Jeg kan ikke få perl til at liste alle de undermapper der er ved en
> givet lokation
>
> fx /home/mig/
>
> Jeg kan med "system ls -l /home/mig/ | grep dwr" få alle mapperne frem,
> men jeg kan ikke finde ud af at få svaret tilbage..
>
> Er der nogle der kan hjælpe
>
> Christian@Dannesboe.dk

Jeg bruger dette her:"
sub get_dir {
my $dirname = shift(@_);
opendir DIR, $dirname or return ("null");
@files=grep !/^\./, readdir(DIR);
return @files;
} # get_dir
"
til at få selve listingen frem. Derefter kan du tjekke om hvad er en
fil/link/katalog osv.

Man kunne diskutere hvor smart det er :)

--

/wojci

wojci at wojci dot dk

Peter J. Acklam (28-11-2000)
Kommentar
Fra : Peter J. Acklam


Dato : 28-11-00 14:23

"wojci" <wojci@wojci.dk> writes:

> Jeg bruger dette her:"
> sub get_dir {
> my $dirname = shift(@_);
> opendir DIR, $dirname or return ("null");
> @files=grep !/^\./, readdir(DIR);
^^^^^^

Hvorfor bruker du denne? Den vil jo ta bort filer som .emacs,
..cshrc, .history, .envir, ...

Peter

--
$\="\n";$_='The quick brown fox jumps over the lazy dog';print +(split
//)[20,5,24,31,3,36,14,12,31,1,2,11,9,23,33,29,35,15,32,36,7,8,28,29];

wojci (28-11-2000)
Kommentar
Fra : wojci


Dato : 28-11-00 21:15

In article <wkaeakb58q.fsf@math.uio.no>, jacklam@math.uio.no wrote:

> "wojci" <wojci@wojci.dk> writes:
>
>> Jeg bruger dette her:" sub get_dir {
>> my $dirname = shift(@_); opendir DIR, $dirname or return ("null");
>> @files=grep !/^\./, readdir(DIR);
> ^^^^^^
>
> Hvorfor bruker du denne? Den vil jo ta bort filer som .emacs,
> .cshrc, .history, .envir, ...
>
> Peter
>

Korrekt.
Det stammer fra et sted hvor dot-filer ikke skal være med :)
Det var bare et eksempel...

--

/wojci

wojci at wojci dot dk

Peter J. Acklam (30-11-2000)
Kommentar
Fra : Peter J. Acklam


Dato : 30-11-00 12:11

"wojci" <wojci@wojci.dk> writes:

> @files=grep !/^\./, readdir(DIR);
> ^^^^^^

jacklam@math.uio.no wrote:

> Hvorfor bruker du denne? Den vil jo ta bort filer som .emacs,
> .cshrc, .history, .envir, ...

"wojci" <wojci@wojci.dk> writes:
>
> Korrekt.
> Det stammer fra et sted hvor dot-filer ikke skal være med :)
> Det var bare et eksempel...

Ok. Jeg synes det så litt rart ut, så jeg ville spørre for
sikkerhets skyld...

Peter

--
$\="\n";$_='The quick brown fox jumps over the lazy dog';print +(split
//)[20,5,24,31,3,36,14,12,31,1,2,11,9,23,33,29,35,15,32,36,7,8,28,29];

Peter J. Acklam (28-11-2000)
Kommentar
Fra : Peter J. Acklam


Dato : 28-11-00 14:21

Christian Dannesboe <Christian@Dannesboe.dk> writes:

> Jeg kan ikke få perl til at liste alle de undermapper der er ved en
> givet lokation
>
> fx /home/mig/
>
> Jeg kan med "system ls -l /home/mig/ | grep dwr" få alle mapperne frem,
> men jeg kan ikke finde ud af at få svaret tilbage..

use DirHandle;

my $dir = '/home/mig';
my @subdirs = grep { -d "$dir/$_" } DirHandle->new($dir)->read();

Peter

--
$\="\n";$_='The quick brown fox jumps over the lazy dog';print +(split
//)[20,5,24,31,3,36,14,12,31,1,2,11,9,23,33,29,35,15,32,36,7,8,28,29];

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste