That worked perfectley. > > From: "Larsen, Errin M HMMA/IT" <[EMAIL PROTECTED]> > Date: 2005/10/07 Fri PM 02:03:29 EDT > To: <beginners@perl.org> > Subject: RE: Finding directories within a tree > > [EMAIL PROTECTED] wrote: > > Good Afternoon > > > > I am attempting to develop a script that will parse a directory > > listing and return only directory names that match a given > > expression. > > > > It would make sense to me to use File::Find to do this but based on > > the dir structure I am parsing, the amount of overhead to do this is > > enourmous ! > > > > Basically, I have a file structure similar to: > > > > Dir1\Dir2\Support\119404\dirx\diry > > Dir1\Dir3\Support\119893\dirx > > Dir1\Dir4\Support\188884\dirx\diry\dirz > > ..... > > Dir1\Dir1000\Support\100858 > > > > I am simply interested in finding the directories directley under the > > Support dir (ex.119404 from the 1st example) . There is no > > consistancy to the naming convention other then Dir1 and Support. > > Dir2 can be many different values. > > > > I tried functionality similar to the following that did work on a > > much smaller test bed: > > > > my $dirs="I:\\ID_000000_000999"; > > find sub { push @dirs, $File::Find::dir if $File::Find::dir =~ > > m/.+[Ss]upport\/\d+$/;}, $dirs; > > > > But in a larger scale dir structure. The performance of this was > > horrible !! (Since it is looking through the entire structure > > including dirs under the directory I am trying to match on). > > > > As you can see form the I:\\ this is on windows, so ls and similar > > UNIX commands are not available. > > > > Any thoughts on how I can accomplish this task with the lowest amount > > of overhead? > > > > Thanks! > > Jason > > Hi Jason, > > Did you look into globs? You need to make a list of every directory > you're interested in ONCE, then process that list. > > This worked for me: > > > # I don't have access to a windows system with Perl > # installed, but as this is all native perl, it > # should be fine > > my $dirs='/ID_000000_000999'; > my @dirs_found; > > push @dirs_found, $_ while <$dirs/*/[Ss]upport/*>; > > > > You can check out these perldocs for further info: > > perldoc -f glob > perldoc File::Glob > perldoc perlop (look for I/O Operators) > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > <http://learn.perl.org/> <http://learn.perl.org/first-response> > >
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>