I've added an example of the input and output to my original post, and my code is currently looking like this, but again I am still not sure I am using the hash correctly, and the hash key is really throwing me. I'm not getting any errors with this code, but my output file is empty
#!/usr/bin/perl use warnings; use strict; use diagnostics; open( INFILE, "<", 'myosin.fasta') or die $!; #open original myosin.fa +sta for reading open( OUTFILE, ">", 'modifiedHeaders.fasta') or die $!; #open/create n +ew fasta for writing my %headerHash; #create hash for the header my $seq; my $header; #loop through old file while (<INFILE>){ chomp; my $line = $_; # use if/then to seperate headers from seq, while regex to select only + species name in header if ($line =~ /^>/){ $header = $line; if ($header =~ /(>gi.*)\[(.+)\](>g.*)\[(.+)\]/ +){ my $headerHash = $2; $headerHash{$2} = $2; } } else { $seq = $line; } } close INFILE; for my $key(keys %headerHash){ print OUTFILE $headerHash{$key}, "\n", $seq, "\n"; }
In reply to Re^2: While loop with nested if statements
by lairel
in thread While loop with nested if statements
by lairel
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |