#!/usr/bin/perl use 5.014; # functional equiv to use strict; use warnings; for this demo # 985557 my ($x, @array, $index, $arr_ref, @arr); sub sub1{ for $x (0 .. 3){ $array[$x] = 0; } say "\t from sub \$array[\$x]: |$array[$x]|"; # omit the part for generating the array; return \@array; } ####################### main part for ($index=0; $index<2; $index++){ $arr_ref = &sub1($index); $arr[$index] = @$arr_ref; foreach $_ (0 .. 3){ say "\@arr | @arr |, \$index: |$index|, \$_: |@_|"; # print "$arr[$index][$_]\n"; # Can't use string ("101") as an ARRAY ref while "strict refs" # in use at 985557.pl line 24. } say "\@arr | @arr |, \$index: |$index|, \$_: |@_|"; } say "\@arr | @arr |, \$index: |$index|, \$_: |@_|";