HI ,

You need to declare @array "as my @array" after line 14  in subroutine.


13 sub color { 14 $map1 = shift; #NEW LINE- my @array ; 15 foreach $item(keys %$map1) 16 { push @array, $item;} 17 return [EMAIL PROTECTED]; 18 }

Regards
---------------------------------------------------------------------------
Amit Kulkarni.
Software Engineer,
Intellvisions Software ltd.
off:-022-26875452 ext: 51
---------------------------------------------------------------------------
Everyone wishes to have truth on his side, but not everyone wishes to be on the side of truth.
---------------------------------------------------------------------------




Khan, Ahmer H wrote:
Hi, I'm very new to Perl and am learning as I go along. I've been
reading a lot of articles and perl books to enhance my expertise. I'm
stuck on a problem where the content of the arrays returned back from a
common subroutine call are getting mixed up.

Here is the code.

------------------------------------------------------------------------
------------------
1 my %color_map = ( red => 'rouge',
2 blue => 'bleu', );
3 4 5 my %grey_map = ( grey => 'white',
6 greyblack => 'black', );
7 8 (*back1) = &color(\%color_map); ### Problem seems to be here.
9 (*back2) = &color(\%grey_map); ### Data returned getting mixed due
to common sub calls.
10 foreach (@back2) {print;} print"\n\n\n";
11 foreach (@back1) {print;}
12
13 sub color {
14 $map1 = shift; 15 foreach $item(keys %$map1)
16 { push @array, $item;}
17 return [EMAIL PROTECTED]; 18 }
------------------------------------------------------------------------
----------------------


The result looks like this.

C:\TEMP\perl>perl testhash.pl
blueredgreygreyblack


blueredgreygreyblack

I'm not sure why the content would get mixed up due to a common
subroutine call. On line 8 and 9, the common subroutine 'color' is
called once for each hash reference and subsequently the reference to
the array is returned back. Printing the arrays indicates mixed data
which obviously that I am doing something terribly wrong. Is there
another way to approach this?


Ahmer




-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to