I'll answer my own question: Inside optionsNextItem I'm making a copy of @{$ref}, so setting any value in that copy won't change the array (stupid me).
-----Original Message----- From: Duarte Cordeiro Sent: Monday, December 16, 2002 9:53 AM To: '[EMAIL PROTECTED]' Subject: array iteration & references Hi all, I want to iteract through a array with a step = 2. Meaning, that, with a array of (1,2,3,4,5,6,7,8,9,0) I want to have 5 interactions with 2elements available in each one. (1,2), (3,4), etc. Not knowing if there is something OOTB within perl, I just: sub optionsInitialize{ my ($ref)=@_; Logit("ref is $ref, size is $#{$ref}"); return [$ref,0, $#{$ref}+1]+1; } sub optionsNextItem{ my ($ref)=@_; my @ref_arr=@{$ref}; my $count=$ref_arr[1]; my $max=$ref_arr[2]; my @arr=@{$ref_arr[0]}; $count+=2; return undef if ($count>$max); $ref_arr[1]=$count; return ($arr[$count],$arr[$count+1]); } sub optionsIsEnd{ my ($ref)=@_; my @ref_arr=@{$ref}; my $count=$ref_arr[1]; my $max=$ref_arr[2]; return ($count >= $max); } And I would do something like: my $parameters=["par1", ["sjsj","djdj"], "par2", ["fjkdj","dkdj"]; my $options=optionsInitialize($parameters); while(!optionsIsEnd($options)){ ($key, $default)=optionsNextItem($options); ...... } Now, the two questions: 1 - Is there a better (working) way to do this ? 2 - Thinking of other languages, I thought (my first error I know :P ) that passing a reference to a array would allow me to change the array inside a sub. But $count is always 0 inside optionsNextItem(); Thanks in advance, Duarte Cordeiro -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]