in reply to Re^2: array in hashes
in thread array in hashes

That code doesn't throw any errors. It might not give the output you want, but then you should at least tell us what output it produced, and what you wanted it to print instead.

In this case reading perlreftut and applying what you learn there should solve your problem.

Replies are listed 'Best First'.
Re^4: array in hashes
by persianswallow (Novice) on Jul 29, 2011 at 09:36 UTC

    thank you for your helps.

    #!/usr/bin/perl -w use strict; my %genome1 = ( a => [ 10, 15 ], b => [ 3, 7 ], c => [ 9, 14 ], ); my %genome2 = ( d => [ 3, 21 ], a => [ 3, 4 ], g => [ 5, 10 ], b => [ 2, 7 ], ); for (keys(%genome1)) { if ($genome2{$_}) { print("$genome1{$_} and $genome2{$_}\n"); } }

    we have a in each of hashes (3,4) and (10,15).i want to calculate the slope of the line between (3,4) and (10,15), it means (15-4)/(10-3) or for b we have (2,7) and (3,7),i want (7-7)/(3-2) as output.m=(y2-y1)/(x2-x1).but i dont know how i have to define x and y for numbers in hashes.

      i want (7-7)/(3-2) as output.

      Is this what you want?

      for (keys(%genome1)) { if ($genome2{$_}) { print "for ".$_." it is (".${$genome1{$_}}[1]."-". ${$genome2{$_}}[1].")/(".${$genome1{$_}}[0]."-".${$genome2{$_}}[ +0].")\n"; } }
        There's no need for the additional blocks. Writing $genome1{$_}[1] instead of ${$genome1{$_}}[1] is just fine.

        thank you soooooooooooooo much.:-) i need amount of those calculation.i mean (15-4)/(10-3)is equal to 1.5714286 but it doesnt print that.