In scalar context, I get the same behaviour in 5.6.0, 5.6.1, 5.8.0 and 5.8.8
>c:\progs\perl560\bin\perl -wle"$s = sub { my @rv = $_[0] =~ /^([0-9]+
+)$/; retur
n @rv[0 .. $#rv]; }->('abc'); print $s"
Use of uninitialized value in print at -e line 1.
>c:\progs\perl561\bin\perl -wle"$s = sub { my @rv = $_[0] =~ /^([0-9]+
+)$/; retur
n @rv[0 .. $#rv]; }->('abc'); print $s"
Use of uninitialized value in print at -e line 1.
>c:\progs\perl580\bin\perl -wle"$s = sub { my @rv = $_[0] =~ /^([0-9]+
+)$/; retur
n @rv[0 .. $#rv]; }->('abc'); print $s"
Use of uninitialized value in print at -e line 1.
>c:\progs\perl588\bin\perl -wle"$s = sub { my @rv = $_[0] =~ /^([0-9]+
+)$/; retur
n @rv[0 .. $#rv]; }->('abc'); print $s"
Use of uninitialized value in print at -e line 1.
In list context, I get the same behaviour in 5.6.0, 5.6.1, 5.8.0 and 5.8.8
>c:\progs\perl560\bin\perl -wle"@a = sub { my @rv = $_[0] =~ /^([0-9]+
+)$/; retur
n @rv[0 .. $#rv]; }->('abc'); print @a"
>c:\progs\perl561\bin\perl -wle"@a = sub { my @rv = $_[0] =~ /^([0-9]+
+)$/; retur
n @rv[0 .. $#rv]; }->('abc'); print @a"
>c:\progs\perl580\bin\perl -wle"@a = sub { my @rv = $_[0] =~ /^([0-9]+
+)$/; retur
n @rv[0 .. $#rv]; }->('abc'); print @a"
>c:\progs\perl588\bin\perl -wle"@a = sub { my @rv = $_[0] =~ /^([0-9]+
+)$/; retur
n @rv[0 .. $#rv]; }->('abc'); print @a"