Hello
I have a subroutine that returns a string and an associated array. When I call it, I do it as in the following:
my ($String1 %AssocArray1) = MySubRoutine(SOME_ARGUMENTS1);then I print the %AssocArray1 to the screen as follows:
foreach $test(keys %AssocArray1){ print "$test\n"; }
everything looks fine now, then when I call my subroutine again as follows:
my ($String2, %AssocArray2) = MySubRoutine(SOME_ARGUMENTS2);and I print it to the screen as follows:
foreach $test(keys %AssocArray2){ print "$test\n"; }
it prints to me both %AssocArray1 (that I already printed before) then %AssocArray2
I tried to delete all elements of %AssocArray1 before I even call my subroutine for the second time for %AssocArray2, and then printed %AssocArray2 to the screen, but once again the same thing happened, it keeps printing %AssocArray1 and %AssocArray2 when I only want to print %AssocArray2
Anyone knows what's wrong with my coding here?
Notes:
I just checked my subroutine and CountOrlok you were right, I don't know how I missed defining the associated array for local use only. Thanks a lot to you and for the rest of the guys who were trying to help as well :) My program is now working perfectly as expected :)
Edited by planetscape - added code tags and fixed formatting
In reply to Associated Array Appending Unwillingly by cgi_pro
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |