Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^3: How to count the length of a sequence of alphabets and number of occurence of a particular alphabet in the sequence?

by rjt (Curate)
on Oct 07, 2019 at 18:30 UTC ( #11107149=note: print w/replies, xml ) Need Help??


in reply to Re^2: How to count the length of a sequence of alphabets and number of occurence of a particular alphabet in the sequence?
in thread How to count the length of a sequence of alphabets and number of occurence of a particular alphabet in the sequence?

These are indeed basic questions, as pointed out by stevieb. There are several ways to output to a file. Your operating system itself can probably do it with output redirection, or from within Perl, the open command can write to files instead of reading. Click on the links in the preceding sentence for more information and examples.

To put the outputs into bins for different string lengths, hashes are an excellent way to do that. I would use a hash of array refs. The perldata page is again another great documentation resource that will introduce you to the required concepts. The basic algorithm in your case would be to do everything you're already doing, but instead of displaying the "A" count and length with say, you would instead store it in a hash. The hash key would be the length, and the hash value would be an array ref.

Untested:

my $len = length; $bins{$len} //= [ ]; # Set to blank array ref if not already set. push @{$bins{$len}}, $a; # Add $a to the array

When it's all over, %bins (which you will of course need to declare before the main loop), has your A counts:

See sort for an explanation of how to sort your data.

for my $len (sort { $a <=> $b } keys %bins) { say "Length $len:"; say for @{$bins{$_}}; }

Some assembly and individual research required. :-)

use strict; use warnings; omitted for brevity.
  • Comment on Re^3: How to count the length of a sequence of alphabets and number of occurence of a particular alphabet in the sequence?
  • Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2020-03-30 11:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    To "Disagree to disagree" means to:









    Results (175 votes). Check out past polls.

    Notices?