in reply to Perl Hash Files

This code reads values from STDIN and either creates or increments a hash appropriately. When you enter "Q" it will terminate and output the values...

use strict; my %hash; while(<STDIN>){ chomp; last if $_ =~ /^q$/i; # quit if 'q' is entered if(exists $hash{$_}){ # exists, so increment $hash{$_}++; } else{ # doesn't exist, so set to 1 $hash{$_} = 1; } } my @array = sort keys %hash; # let's make the output sorted... foreach(@array){ print "$_ : $hash{$_}\n"; }

Is that what you meant?

map{$a=1-$_/10;map{$d=$a;$e=$b=$_/20-2;map{($d,$e)=(2*$d*$e+$a,$e**2 -$d**2+$b);$c=$d**2+$e**2>4?$d=8:_}1..50;print$c}0..59;print$/}0..20
Tom Melly, pm@tomandlu.co.uk

Replies are listed 'Best First'.
Re^2: Perl Hash Files
by jwkrahn (Abbot) on Dec 11, 2006 at 13:08 UTC
    if(exists $hash{$_}){ # exists, so increment $hash{$_}++; } else{ # doesn't exist, so set to 1 $hash{$_} = 1; }
    That can be more simply written as:
    $hash{$_}++;
    But I think that the OP wants to increment the hash key instead of the value:
    $_++ while exists $hash{$_}; $hash{$_}++;