Jeremiah C. Foster wrote:
> rjbs informed me about a problem with debian's version of
> Scalar::Util. It does not properly implement the 'weaken'
> subroutine. This means that a great deal of CPAN that relies on this
> subroutine, and on weak references, fails. This also means that the
> version of perl 5.8.8 that debian provides does not provide weak
> references which are fairly widely used.
Do you have a test case showing weaken failing to work?
I tested with some simple things and it seems to work:
joey@kodama:~>perl -le '{ my $var="set"; $ref=\$var; }; print defined $ref'
1
joey@kodama:~>perl -le 'use Scalar::Util "weaken"; { my $var="set"; $ref=\$var; weaken($ref); }; print defined $ref'
joey@kodama:~>
I've also used weaken in production code, with no problems.
> Scalar::Util is provided by libfilehandle-unget-perl, although my
> understanding is that it is in the core distribution for perl 5.10.
No, Scalar::Util is provided by perl-base; it's been included in the
perl core for a while -- well before perl 5.10.
libfilehandle-unget-perl's source package contains an old copy (of version
1.14) in inc/, but this is not built in the binary package.
(BTW AFAIK the actual implementation of weaken is in the List::Util XS, which
is also in perl core.)
> I am not sure about the best way to go about fixing this.
I imagine the first thing would be to file a bug report with enough
information for someone to reproduce your problem.
--
see shy jo
Attachment:
signature.asc
Description: Digital signature