I have written this code but it is wrong please help me in correcting this
$proteinfilename=<STDIN>;
chomp $proteinfilename;
open(FILENAME,$proteinfilename);
@array=<FILENAME>;
if (
@array=~m (/^AD/)){
print " @array";
}
| [reply] [d/l] |
foreach my $line (@array) {
if($line =~/^AD/){
print " $line";
}
}
| [reply] [d/l] |
Hi
Thanks for correcting my code:
Can you suggest me some links on net which , which step by step helps to learn Perl , any sort of good tutorial.
| [reply] |
For tasks like you've described, there's no reason to read the entire file into an array. It's usually better to process the file line by line, because it scales in case your files should get huge. I.e. for, say, a 1 GB file, you'd need several gigs of RAM to hold the contents in the array, while if you process line by line, you'll only ever need storage for one line.
open my $fh_in, "<", $proteinfilename or die "Couldn't open '$protein
+filename': $!";
open my $fh_out, ">", $outfilename or die "Couldn't open '$outfilename
+': $!";
while (my $line = <$fh_in>) {
if ($line =~ /^AD/) {
print $fh_out " $line";
}
}
| [reply] [d/l] |