Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re: Code won't proceed after input.

by choroba (Bishop)
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.
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1014944]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2018-06-24 14:52 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.