http://www.perlmonks.org?node_id=175370


in reply to How can I filter a specified File Type.

Is this from an array or the filesystem?

If it's the filesystem, and it's unix, try:

ls ???1107*
if it's the filesystem, and it's Windows, try:
dir ???1107*.*
if it's an array, try:
my @filtered_files = grep { /^...1107/ } @files;

Replies are listed 'Best First'.
Re^2: How can I filter a specified File Type.
by amitbhosale (Acolyte) on Feb 14, 2008 at 07:28 UTC
    Hi, Below mentioned script is filter and display all files whose file type is 33188.
    #!/usr/bin/perl -w use strict; use File::stat; sub dodir { opendir(DIR,$_[0]) or die "Couldn't open $_[0] directory $!"; my $dir=$_[0]; print "\n Directory name is $dir"; if ( $dir !~ /\/$/ ) { $dir .= "/"; } my @List=readdir(DIR); closedir(DIR); splice(@List,0,2); foreach my $file (@List) { $file = $dir.$file; if( -d $file) { dodir($file); } elsif (stat($file)->mode == 33188 ) { print "\n File $file is pre +sent in $dir"; print "\n File type: ",stat($file)->mode; } } } my $dir_name="/home"; if ( -d $dir_name) { dodir($dir_name); }
    ============o/p======
    ./file_op.pl Directory name is /home Directory name is /home/abhosale Directory name is /home/abhosale/.texmf Directory name is /home/abhosale/.texmf/config Directory name is /home/abhosale/.texmf/config/web2c Directory name is /home/abhosale/.texmf/var Directory name is /home/abhosale/.texmf/var/fonts Directory name is /home/abhosale/.texmf/var/fonts/map Directory name is /home/abhosale/.texmf/var/fonts/map/dvipdfm Directory name is /home/abhosale/.texmf/var/fonts/map/dvipdfm/updmap Directory name is /home/abhosale/.texmf/var/fonts/map/dvips Directory name is /home/abhosale/.texmf/var/fonts/map/dvips/updmap Directory name is /home/abhosale/.texmf/var/fonts/map/pdftex Directory name is /home/abhosale/.texmf/var/fonts/map/pdftex/updmap Directory name is /home/abhosale/.texmf/var/web2c File /home/first is present in /home/ File type: 33188 Directory name is /home/myprog File /home/myprog/abc is present in /home/myprog/ File type: 33188 File /home/myprog/abd is present in /home/myprog/ File type: 33188 File /home/myprog/matter is present in /home/myprog/ File type: 33188 File /home/myprog/newfile is present in /home/myprog/ File type: 33188 File /home/myprog/oldfile is present in /home/myprog/ File type: 33188
    Please let me know if any changes are required in this script.