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