It seems that function get arrays as strings in plperl.
This is a little workaround who want pass arrays to plperl functions
my( $strarr )=3D @_;
$strarr =3D~ s/{/[/g;
$strarr =3D~ s/}/]/g;
my $arr=3D eval $strarr;
NOTICE:
you must create you function as plperlu
and add language:
create language plperlu;