Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Re: Getting a simple directory listing

by Stamp_Guy (Monk)
on May 01, 2001 at 04:16 UTC ( [id://76831]=note: print w/replies, xml ) Need Help??


in reply to Re: Getting a simple directory listing
in thread Getting a simple directory listing

Ok, ZZamboni, I tried that and it works. I am just trying to get an array with all the subdirectories of the current dir, and this doesn't work:
use Cwd; print "Current dir is: ", cwd, "\n"; opendir(TEXTFILES, "desktop") || die "Couldn't open the text file dire +ctory: $!"; @data=readdir(TEXTFILES); foreach (@data) { push (@dir) if (-d "./desktop/$_"); } closedir(TEXTFILES); print @dir; # This line is just here to make sure it worked, which it +currently doesn't.
Update: Is there a more efficient way to do this? This seems a bit bulky. If someone could show me a better way (and explain it for this newbie) to do this, I'd really appreciate it.

Replies are listed 'Best First'.
Re: Re: Re: Getting a simple directory listing
by ZZamboni (Curate) on May 01, 2001 at 04:24 UTC
    push does not use $_ as an implicit argument, so when you do push(@dir) you are not pushing anything into @dir. You have to do:
    push(@dir, $_) if (-d "./desktop/$_");
    Although I would substitute that whole block (the readdir and the foreach) by:
    @dir = grep { -d "./desktop/$_" } readdir(TEXTFILES);
    :-)

    --ZZamboni

      Bingo, that worked. Is there a way I can strip out the . and .. directories?
        Just check for them. In your original code:
        foreach (@data) { next if $_ eq "." || $_ eq ".."; push @dir, $_ if -d "./desktop/$_"; }
        Using grep:
        @dir = grep { $_ ne "." && $_ ne ".." && -d "./desktop/$_" } readdir(TEXTFILES);

        --ZZamboni

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://76831]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2024-04-24 18:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found