Pn wrote: > > Hi, Hello,
> I have a file age_classes.txt in /prj/tmp that > contains the following information. These are intended > to be prefixes for the file names in the agegroup_data > directory. > > $ cat $age_classes.txt > agegroup2 > agegroup3 > agegroup4 > > I also have a directory /prj/temp/agegroup_data that > contains the following files: > > agegroup2ha0.txt > agegroup2hb0.txt > agegroup2hc0.txt > > agegroup3ha0.txt > agegroup3hb0.txt > agegroup3hc0.txt > agegroup3hd0.txt > > agegroup4ha0.txt > agegroup4hb0.txt > agegroup4hc0.txt > agegroup4hd0.txt > agegroup4he0.txt > > What I am trying to do is the following: > > 1) open and read each line of the age_classes.txt file > 2) for each entry in the age_class.txt file, find all > the matching files the /prj/tmp/agegroup_data > directory, and store it in an array. > 3) Print the contents of the array to a file > > Here is the code that I have, but it does not seems to > do what I want. I think the problem is with the way > that I am doing the file globbing. Would greatly > appreciate your help in understanding what is the > correct way to do this. > > > #!/usr/bin/perl -w > use strict; > > my $Wdir = "/prj/temp/"; > my $age_class_file = "$Wdir/age_classes.txt"; > > open (IN,"<$age_class_file") || > die " Required Input file : $age_class_file not Found\n\t\t\t........Aborting\n" >; > > while (<IN>) { > > my $tmp_var; > my @age_class_list; > my $age_group; > > chomp; > # remove newline characters > $tmp_var = "$_"."*"."\."."txt"; > $_ = "$Wdir/agegroup_data/$tmp_var"; > @age_class_list = $_; # capture input lines and store in an array variable > print "@age_class_list\n"; > > foreach $age_group (@age_class_list) { > open (DATA_OUT, ">$Wdir/age_groups_output_list.txt") || > die " Could not Open output file ....Aborting"; > print DATA_OUT $age_group; > } > close DATA_OUT; > } > close IN; Here is one way to do it: #!/usr/bin/perl -w use strict; my $Wdir = '/prj/temp'; my $age_class_file = 'age_classes.txt'; open IN, "$Wdir/$age_class_file" or die "Required Input file: $Wdir/$age_class_file: $!"; open DATA_OUT, "> $Wdir/age_groups_output_list.txt" or die "Could not Open $Wdir/age_groups_output_list.txt: $!"; print DATA_OUT "$_\n" for map { chomp; glob "$Wdir/agegroup_data/$_*.txt" } <IN>; __END__ John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]