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 (Canon)
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 avoiding work at the Monastery: (5)
As of 2015-07-05 03:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls