Simple examples to open a file for reading: open(my $fh, "<", "input.txt") or die "Can't open < input.txt: $!"; and for writing: open(my $fh, ">", "output.txt") or die "Can't open > output.txt: $!"; #### while (<$input>) { chomp; # do something with $_ } #### #!/usr/bin/perl use strict; use warnings; my $filename = 'counts.txt'; open (my $fh, '+<', $filename) or die "Could not open '$filename' $!"; my $count = ""; while (<$fh>) { chomp; if ($_ =~ /^>hsa/) { $count .= length $_; $count .= " "; } } print $fh $count . "\n"; close $fh or die "Could not close '$filename' $!"; __END__ >hsa_circ_0000001|chr1:1080738-1080845-|None|None ATGGGGTTGGGTCAGCCGTGCGGTCAGGTCAGGTCGGCCATGAGGTCAGGTGGGGTCGGCCATGAAGGTGGTGGGGGTCATGAGGTCACAAGGGGGTCGGCCATGTG >hsa_circ_0000002|chr1:1158623-1159348-|NM_016176|SDF4 GGTGGATGTGAACACTGACCGGAAGATCAGTGCCAAGGAGATGCAGCGCTGGATCATGGAGAAGACGGCCGAGCACTTCCAGGAGGCCATGGAGGAGAGCAAGACACACTTCCGCGCCGTGGACCCTGACGGGGACGGTCACGTGTCTTGGGACGAGTATAAGGTGAAGTTTTTGGCGAGTAAAGGCCATAGCGAGAAGGAGGTTGCCGACGCCATCAGGCTCAACGAGGAACTCAAAGTGGATGAGGAAA 49 54 #### #!/usr/bin/perl use strict; use warnings; my $filename = 'counts.txt'; open (my $fh, '+<', $filename) or die "Could not open '$filename' $!"; chomp(my @lines = <$fh>); for (@lines) { print $fh length($_) . " " if ($_ =~ /^>hsa/); } close $fh or die "Could not close '$filename' $!"; __END__ >hsa_circ_0000001|chr1:1080738-1080845-|None|None ATGGGGTTGGGTCAGCCGTGCGGTCAGGTCAGGTCGGCCATGAGGTCAGGTGGGGTCGGCCATGAAGGTGGTGGGGGTCATGAGGTCACAAGGGGGTCGGCCATGTG >hsa_circ_0000002|chr1:1158623-1159348-|NM_016176|SDF4 GGTGGATGTGAACACTGACCGGAAGATCAGTGCCAAGGAGATGCAGCGCTGGATCATGGAGAAGACGGCCGAGCACTTCCAGGAGGCCATGGAGGAGAGCAAGACACACTTCCGCGCCGTGGACCCTGACGGGGACGGTCACGTGTCTTGGGACGAGTATAAGGTGAAGTTTTTGGCGAGTAAAGGCCATAGCGAGAAGGAGGTTGCCGACGCCATCAGGCTCAACGAGGAACTCAAAGTGGATGAGGAAA 49 54 #### #!/usr/bin/perl use strict; use warnings; my $count; while (<>) { if ($_ =~ /^>hsa/){ chomp (my $line = <>); $count .= length($line); $count .= " "; print "Count final: " . $count . "\n"; } } continue { close ARGV if eof; # reset $. each file } my $filename = 'counts.txt'; open (my $fh, '>', $filename) or die "Could not open '$filename' $!"; print $fh $count; close $fh or die "Could not close '$filename' $!"; __END__ $ perl test.pl test.txt Count final: 107 Count final: 107 251 #### #!/usr/bin/perl use strict; use warnings; my $filename = 'counts.txt'; open (my $fh, '>', $filename) or die "Could not open '$filename' $!"; chomp(my @lines = <>); for (@lines) { next if ($_ =~ /^>hsa/); print $fh length($_) . " "; } print $fh "\n"; close $fh or die "Could not close '$filename' $!"; __END__ $ cat counts.txt 107 251 #### #!/usr/bin/perl use strict; use warnings; my $filename = 'counts.txt'; open (my $fh, '>', $filename) or die "Could not open '$filename' $!"; chomp(my @lines = <>); for (@lines) { print $fh length($_) . " " if ($_ =~ tr/ACGT//); } print $fh "\n"; close $fh or die "Could not close '$filename' $!"; __END__ $ cat counts.txt 107 251