Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Code won't proceed after input.

by choroba (Abbot)
on Jan 23, 2013 at 16:15 UTC ( #1014944=note: print w/ replies, xml ) Need Help??


in reply to Code won't proceed after input.

The main problem of your code has been solved. However, there are lots of other things that can be improved:

  • Use the 3 argument version of open with lexical filehandles. Also, the open or die idiom is much more readable and common than your unless structure.
  • Do not use the same name for various types of things (scalar and array variable in this case).
  • If you can process the file line by line, do not slurp it all into memory.
  • Use hashes to count numbers of occurrences.
Here is how I would approach your problem:
#!/usr/bin/perl use strict; use warnings; print "Enter the file containing the sequence: "; my $filename = <STDIN>; chomp $filename; open my $FH, '<', $filename or die "Cannot open $filename: $!"; my @chars = qw(A C D E F G H I K L M N P Q R S T V W Y); my $length; my $char_regex = join q(), @chars; $char_regex = qr/[$char_regex]/; my %occ; while (my $line = <$FH>) { for my $char (split //, $line) { next unless $char =~ $char_regex; $length++; $occ{$char}++; } } print "AMINO ACID \t OCCURRENCE \t FREQUENCY\n"; for my $char (@chars) { $occ{$char} //= 0; print "$char \t\t $occ{$char} \t\t ", $occ{$char} / $length, "\n" +; }
BTW, the plus sign at 'S' just means your line is too long and has been wrapped. You can adjust your line length in your settings.
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ


Comment on Re: Code won't proceed after input.
Select or Download Code
Re^2: Code won't proceed after input.
by newbie1991 (Acolyte) on Jan 23, 2013 at 16:43 UTC

    THanks, but I have a couple of questions : what does q() and qr// do?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1014944]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (15)
As of 2014-10-24 15:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (132 votes), past polls