use threads;
use threads::shared;
my %h : shared;
$h{test} = [];
Invalid value for shared scalar at (eval 4) line 1, <> line 4.
my $ar = [];
$h{test} = $ar;
Invalid value for shared scalar at (eval 6) line 1, <> line 6.
share $ar;
$h{test} = $ar;
## No error this time.
####
use threads;
use threads::shared;
my %h : shared;
my $ar : shared = [];
$h{test} = $ar;
####
use threads;
use threads::shared;
my %h : shared;
my $ar = [];
$h{test} = share( $ar );
####
use threads;
use threads::shared;
my %h : shared;
$h{test} = share( [] );
Type of arg 1 to threads::shared::share must be one of [$@%] (not single ref constructor) at (eval 6) line 1, near "] )"