For sure we were talking apples and oranges.
Initially I thought that you can not use *XS* feature in perl-5.6.1 that was appeared in perl-5.8.0.
Now I see that in perl-5.6.1 there is no way at all to prototype a subroutine that takes a reference to array or hash as its first argument. I checked sources and realized that.
In this case may be source filters could be kind of solution as a hack. But source filter not necessarily installed everywhere.
May be it's better to introduce three prototyped functions for each: share_a, share_s, share_h (for sharing array, scalar and hash respectively)?
Also I did some RTFSing (f=fine here), and now understand a little bit more on situation. Following code is a maximum that I reached on this matter, it finds a prototype for a subroutine:
use B;
sub share(\[@%$]) {print qq/[@_]/}
%stash = B::svref_2object(\%{"::"})->ARRAY;
$c=B::svref_2object(\&share);
#... or this $c=B::svref_2object(\&share);
print 'prototype equals to '. $stash{share}->CV->PV,"\n";
Courage, the Cowardly Dog |