develooper Front page | perl.beginners | Postings from June 2011

perl code for if-elsif-else logic

Thread Next
From:
Anirban Adhikary
Date:
June 1, 2011 22:07
Subject:
perl code for if-elsif-else logic
Message ID:
BANLkTikFEj4S+aAijKkmWhMzg0Ka3yfKSA@mail.gmail.com
Hi list

I have wirtten the following perl code which has some configuration
params such as prefix,suffix,midfix and nofix. The logic is filenames
will be selected based on prefix,suffix and midfix pattern.After the
fiter through above 3 patterns if file names exists with nofix
patterns it will be removed from the final list.

use strict;
use warnings;

#my $pfx ="CAT";
my $pfx = '';
my $sfx = '.Z' ;
my $mfx =   'r';
my $nfx= "dmp.Z,Q.Z,dat.Z,ctl.Z,A.Z";
my @fnames = ("CAT_arcdf231456_dmp.Z","ABCD_1234.txt","FILE_STAT.Z","CAT_qwerty.Z");

my($re_pfx,$re_sfx,$re_mfx,$re_nfx);
my(@pre_fix,@sfx_fix,@mid_fix,@not_fix);

if((length($pfx)) > 0 and $pfx !~ /^\s+$/) {
	@pre_fix = split(/,/,$pfx);
	#find_largest_element(@pre_fix);
	$re_pfx  = join "|",@pre_fix;
	$re_pfx = qr/$re_pfx/;
}
if((length($sfx)) > 0 and $sfx !~ /^\s+$/) {
        @sfx_fix = split(/,/,$sfx);
        $re_sfx  = join "|",@sfx_fix;
        $re_sfx = qr/$re_sfx/;
}

if((length($mfx)) > 0 and $mfx !~ /^\s+$/) {
        @mid_fix = split(/,/,$mfx);
        $re_mfx  = join "|",@mid_fix;
        $re_mfx = qr/$re_mfx/;
}


if((length($nfx)) > 0 and $nfx !~ /^\s+$/) {
	@not_fix = split(/,/,$nfx);
	$re_nfx   = join "|", @not_fix;
	$re_nfx      = qr/$re_nfx/;
}
my @listed;

foreach my $fname(@fnames) {
			if($fname =~ /^.*?$re_nfx$/) {
				#print "FILE NAME [$fname] is not a valid file \n";
				next;
			}elsif ($fname =~ /^$re_pfx/){
				push(@listed,$fname);
			}elsif ($fname =~ /^.*$re_sfx$/) {
				push(@listed,$fname);
			}elsif ($fname =~ /^.*$re_mfx.*$/) {
				 push(@listed,$fname);
			}elsif() {
				 push(@listed,$fname);
			}else {
                                  push(@listed,$fname);
			}
			
}


for(@listed) {
	print $_,"\n";
}

prefix,suffix and midfix can be defined and can not be.
So in the above scenario file ABCD_1234.txt should not be selected
because it is not matching $sfx but I m not able to filter this.

Thanks & Regards in advance
Anirban Adhikary.

Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About