Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Entering the land of Perl

by choroba (Bishop)
on Apr 04, 2013 at 21:38 UTC ( #1027037=note: print w/replies, xml ) Need Help??

in reply to Entering the land of Perl

Hello manbroski, welcome to the Monastery!
Prototypes are seldom used in Perl. It is usually enough to pass a reference as the argument directly:
Moreover, counting characters in a string is idiomatically done via the tr operator. We know in advance that the possible characters are A, C, T and G only, so you can write:
#!/usr/bin/perl use strict; use warnings; use feature qw(say); my $s = shift; say join " ", map eval "$s =~ tr/$_//", qw/A C G T/;
Which was exactly my solution to the DNA problem on Rosalind :-)
لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Replies are listed 'Best First'.
Re^2: Entering the land of Perl
by manbroski (Initiate) on Apr 04, 2013 at 21:51 UTC

    That, sir, is a beauty.

    Anything functional (in the map-reduce sense) makes me quite happy. You have my thanks.

    EDIT: what version is this? 5.16 'use strict' returns all zeros for each count. Does that provide the function return code?

      The shift requires the string as an argument of the script. If you want to read it from a file, you have to use
      $s = <>;
      instead and provide the input file as the argument.
      لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (1)
As of 2018-01-20 00:40 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (226 votes). Check out past polls.