Hi Ashley, On Mon, May 31, 2004 at 10:04:33AM +1000, Ashley Maher wrote: > sub insert_order_array { > my ( > @new_value, > $new_value, > @current_array, > $current_array, > @ordered_array, > $i, > $j, > ); > > print "\nIn subroutine \n\n"; > > @new_value = (); > @current_array = (); > @ordered_array = (); > > $new_value = $_[0]; > print "\nthe new array values\n"; > print $new_value->[0]; > print "\t"; > print $new_value->[1]; > print "\n"; > > ##### > print "\ncurrent array\n"; > $current_array = $_[1]; > > # print the whole thing one at a time > for $i ( 0 .. $#current_array ) { > for $j ( 0 .. $#{$current_array[$i]} ) { > print "element $i $j is $current_array[$i][$j]\n"; > } > }
Your problem is here, inside the subroutine - you're not passing an array (@current_array), you're passing a reference to it, so there's another layer of indirection required. So your print loop becomes: # print the whole thing one at a time for $i ( 0 .. $#$current_array ) { for $j ( 0 .. $#{$current_array->[$i]} ) { print "element $i $j is $current_array->[$i][$j]\n"; } } and you'd return the array like: return @$current_array; Does that help? Cheers, Gavin -- Open Fusion P/L - Open Source Business Solutions [ Linux - Perl - Apache ] ph: 02 9875 5032 fax: 02 9875 4317 web: http://www.openfusion.com.au mob: 0403 171712 - Fashion is a variable, but style is a constant - Programming Perl -- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html