Martin Tournoij wrote: > I'm currently massivly confused by multidimensional arrays and passing > arrays to subs. > > Why is it that @_[1] isn't properly copied to @a? > > I'm not sure what exactly I'm doing wrong here, probably something > simple, but I can't find anything that works in the manpages or on the > site... > > Music($var1, \@array); > > sub Music > { > print $_[1][1]; # works $_[1] contains a reference to @array so $_[1][1] is the same as $array[1] (or the second element of @array.) > my @a = @_[1] # Gives warning, should be written as $_[1] @_[1] is an array slice, the warning is because the list [1] has only one element, it's the same as saying "$a[0] = @_[1]". If you want to copy @array to @a then you have to dereference it properly: my @a = @{ $_[1] } But if you are going to copy the array anyway you could just do it like this: Music($var1, @array); sub Music { my ( $var, @a ) = @_; John -- use Perl; program fulfillmentThread Previous | Thread Next