On Sun, 13 Mar 2005 18:38:42 +0800, Edward Wijaya
<[EMAIL PROTECTED]> wrote:
> Hi,
> 
> Suppose I have a pair-series of files as follows:
> 
> data1.fa
> data1.rs
> data2.fa
> data2.rs #say each of this file contain lines of numbers
> ....      #and there are 40 of files
> 
> And I have a code that take two files that ends with *.fa and *.rs
> 
> $ perl mycode.pl data1.fa data1.rs
> $ perl mycode.pl data2.fa data2.rs
> 
> So the code is like this:
> 
> __BEGIN__
> use warnings;
> use strict;
> 
> my $file_fa = $ARGV[0];
> my $file_rs = $ARGV[1];
> open FILE_FA, "< $file_fa" or die "Can't open $file_r : $!";
> open FILE_RS, "< $file_rs" or die "Can't open $file_p : $!";
> 
> my @fa_data; #these two are of the same size
> my @rs_data;
> 
> while (<FILE_FA>){
>    chomp;
>    push @fa_data, $_;
> }
> 
> while (<FILE_RS>){
>    chomp;
>    push @rs_data, $_;
> }
> 
> my @sum = map {$rdata[$_] + $pdata[$_]} 0..$#fa_data;
> 
> my ($base) = split /\./,$file_fa;
> print "$base\n";
> print ">\n";
> 
> foreach my $sum (@sum){
> 
>   print "$sum\n";
> }
> 
> __END__
> 
> How can I make my code above such that it can take all multiple files
> iteratively? to give output sth like this:
> 
> > data1
> sum_of_elements from data1.fa and data1.rs
> > data2
> sum_of_elements from data2.fa and data2.rs
> 

#something like this?

#process each command line argument in turn
while defined (my $filebase = shift;){
# the . is the string append operator
     $file_fa = $filebase.'.fa';
     $file_rs = $filebase.'.rs';
     open FILE_FA, "< $file_fa" or die "Can't open $file_r : $!";
     open FILE_RS, "< $filebase" or die "Can't open $file_p : $!";
   
     #puts each line as an element of the array
     my @fa_data = <FILE_FA>;
     my @rs_data = <FILE_RS>;
 
#... etc

}#end of while defined loop


Best of luck
-- 
Kind regards,
Hal Ashburner

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to