Frank 'Olorin' Rizzi wrote: >Hello everybody. > >I am just starting with Perl, >so the following question will probably appear simple to most of you. > >I am trying to get a Perl program to provide me with a listing of the files >stored on the machine (where the program runs). >The environment is a Win machine.. > >Say I have something like the following: > >#!/usr/bin/perl > >use File::Find; >use Win32API::File ":ALL"; > >foreach (getLogicalDrives()) > { > my $dir = $_; > > next unless (GetDriveType($_) == DRIVE_FIXED); > >// HERE > There are a three options
1) Glob operator print while (<*>); This will print all files in the current directory. This can be modified to list files inside any directory with a while (<$dir/*>) # $dir contains the target directory path Relevant docs : perldoc -f glob perldoc File::Glob 2) opendir, readdir and closedir opendir DIRHANDLE, $dir # Open the directory $dir for reading through the handle DIRHANDLE print for (readdir (DIRHANDLE)); closedir (DIRHANDLE); # Close the handle Difference this method and the glob method is pathname returned. Using glob the output will be $dir/file.txt $dir/subdir1 (Assuming file.txt is a file subdir1 is a directory inside $dir) Using readdir the output will be file.txt subdir1 (Note that $dir/ is not prefixed) Docs : perldoc -f opendir perldoc -f readdir perldoc -f closedir 3) Using File::Find use File::Find; find (sub { print $File::Find::name }, $dir); This will recursively print all files and sub-directories within $dir Docs : perldoc File::Find HTH, Sudarsan > > > } > >What would you put where the //HERE line is in order to get a directory >listing of the $dir ? >Is there anyway I can have this directory listing to immediatly expand >subdirectories, or should I make it a recursive sub ? > >Thank you in advance, > >Frank 'Olorin' Rizzi >e-mail: [EMAIL PROTECTED] >or [EMAIL PROTECTED] > > > > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]