diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-04-25 15:19:21 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2007-04-25 15:19:21 +0000 |
commit | 4de05cebc806d4b25ef35cec05858ca1c0db23e5 (patch) | |
tree | 9e2d693d21d6433b1075bcbc2fc7a2f8c7dbf878 | |
parent | 295812e04a6d8f506d47682b9ea5e7e62b4afbf5 (diff) | |
download | perl-4de05cebc806d4b25ef35cec05858ca1c0db23e5.tar.gz |
overload must not load XS modules at compile time, or perl
doesn't compile.
overload must not clobber $! or $@ behind the scenes when
loading an XS module.
p4raw-id: //depot/perl@31076
-rw-r--r-- | lib/overload.pm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/overload.pm b/lib/overload.pm index 23dbebbb4f..c02fddbfab 100644 --- a/lib/overload.pm +++ b/lib/overload.pm @@ -2,8 +2,6 @@ package overload; our $VERSION = '1.06'; -require Scalar::Util; - sub nil {} sub OVERLOAD { @@ -75,6 +73,9 @@ sub OverloadedStringify { sub Method { my $package = shift; if(ref $package) { + local $@; + local $!; + require Scalar::Util; $package = Scalar::Util::blessed($package); return undef if !defined $package; } @@ -88,6 +89,9 @@ sub AddrRef { my $package = ref $_[0]; return "$_[0]" unless $package; + local $@; + local $!; + require Scalar::Util; my $class = Scalar::Util::blessed($_[0]); my $class_prefix = defined($class) ? "$class=" : ""; my $type = Scalar::Util::reftype($_[0]); |