Have you run it? If not, do so. It is self contained and you can see the input data and fairly quickly infer what the result of running the program is.

Personally I'd be inclined to refactor the code a little to remove some of the magic and make to workings a little clearer. Consider:

#!usr/bin/perl use strict; use warnings; use Data::Dumper; my @data = qw(AAA ATG TTT GTC); my %hash; for my $entry (@data) { my @codes = split //, $entry; ++$hash{$codes[$_]}[$_] for 0 .. $#codes; } print Dumper (\%hash); foreach my $entry (values %hash) { $entry = [map {defined $_ ? $_ : 0} @$entry]; } print Dumper (\%hash);

Note that I've removed the unused variables, renamed @deep to @codes to better express its use, made @codes local to the loop and got rid of the interesting (but unusual) glob construction, and moved the split inside the loop rather than using the slightly more magical construct with the map. I also changed from using a post increment to a pre-increment so the operator is more visible.

I also added a dump before the second loop so the effect of that loop is obvious. If you are still having trouble with the code and what it is doing I suggest you run it and try changing the input data to see what the effect is, then look carefully at the code to see how it is doing its trick.


True laziness is hard work

In reply to Re: can this perl script be explained how and what it is going on...???? by GrandFather
in thread can this perl script be explained how and what it is going on...???? by sharanyaravi

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.