Question.

Shockwave shockwave at clan-tf20.com
Wed Nov 23 15:29:33 UTC 2005


Hi,

I'm not an expert Perl developer, but I may be able to help you.  Here's the way I've done it in the past:

----------------begin code sample------------------

#!/usr/bin/perl -w

use strict;

my $input_dir = '/path/to/files/';   # directory to search
my $fileext = '.lisa';                   # file extension to find
my $count = 0;                         # files found counter
my %files = ();                          # hash for file list

# open filehandle to read output from "ls" command
open(INF,"ls $input_dir|") or &error_msg("Cannot get directory listing for \'$input_dir\'.  Error: \'$!\'\n");
while(<INF>)
{
 chomp;   # drop line terminator
 if ($_ =~ m/$fileext$/) # match files ending in specified file extension
 {
  $files{$count} = $_;   # add entry to hash
  $count++;                # increment file counter
 }
close(INF);     # drop filehandle

exit(0);

----------------end code sample------------------

I hope this helps.


Tom

  ----- Original Message ----- 
  From: Pankaj Bhatia 
  To: fedora-perl-devel-list at redhat.com 
  Sent: Wednesday, November 23, 2005 9:59 AM
  Subject: Question.


  Hi,
  I am a beginner perl developer. 
  I am writing a script for pasing all files in a directory with perticular suffix. 
  I use File::Find but I want to avoid searching in subdirectories. I tried to use File::Find::prune in "wanted" function. bit it did not work. So I use a heck 
  return unless ($File::Find::topdir eq $File::Find::dir); to avoid processing in sub directories. but this is an inefficient way. I want to limit search only to first directory level.
  Please let me know the efficient way to do it. and any comments/modification on the code would also be appriciated.
  Regards
  Pankaj 

  sub wanted {
      ## dir tree Depth = 1
      return unless ($File::Find::topdir eq $File::Find::dir);
      $fileext= ".cgd";
      if ($_ =~ /$fileext$/) { # $_ contain file base name.
                               # $ sign at end of pattern looks for
                               # .lisa suffix

         $files[$Count] = "$File::Find::name";
         $Count++;
     }
  }





------------------------------------------------------------------------------


  --
  Fedora-perl-devel-list mailing list
  Fedora-perl-devel-list at redhat.com
  https://www.redhat.com/mailman/listinfo/fedora-perl-devel-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/fedora-perl-devel-list/attachments/20051123/95c43f3a/attachment.htm>


More information about the Fedora-perl-devel-list mailing list