in reply to Required guidance to simplify this program

You got to look at or learn to use HASH.
Since you know how to use a for loop.
The following could help:

#!/usr/bin/perl -w use strict; my @array = qw(John Sue Larry Mary John Mary Larry John Joe Lisa John +Mary); my %names; # create a hash variable to use for (@array) { $names{$_}++; } for ( keys %names ) { $names{$_} <= 1 ? print $_, ' is repeated for ', $names{$_}, ' time', $/ : print $_, ' is repeated for ', $names{$_}, ' times', $/; }
Hope it helps.

If you tell me, I'll forget.
If you show me, I'll remember.
if you involve me, I'll understand.
--- Author unknown to me

Replies are listed 'Best First'.
Re^2: Required guidance to simplify this program
by vyeddula (Acolyte) on Jun 04, 2013 at 06:17 UTC

    hi 2teez.Thanks for your response.

    for (@array) { $names{$_}++; }

    I would like to know what exactly this piece of code dose

    You created a hash and inside the foreach loop i didn't get $names{$_}++ part.Please clarify.Thanks

      For each name in the array, if the name already exists in the hash as key, then increment the value by 1; but if not, then add the name to the hash with the initial value of 1.
      Hope it helps.

      If you tell me, I'll forget.
      If you show me, I'll remember.
      if you involve me, I'll understand.
      --- Author unknown to me

        May be i am missing a basic understanding here.In order to understand what that block does practically i wrote a small program below

        #!/usr/bin/perl -w use strict; my @array=qw(John Sue Larry Mary John Mary Larry John Joe Lisa John Ma +ry); my %hash; foreach (@array) { $hash{$_}++; } foreach (keys %hash) { print"Key is : [$_]\n"; } foreach (values %hash) { print "Value is : [$_]\n"; }

        After executing the code the output i got is

        Output: key is :joe Key is :Lisa and so on..and value is no.of time they repeated. I realized the block of foreach array is assigning the list to hash but my doubt is nowhere i assigned array elements to hash and how come keys got assigned and values got assigned from array elements. I am new to programming.I guess i am missing basic understanding pardon me and guide. Thanks