summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-09-20 03:06:10 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-09-20 03:06:10 +0000
commit5a844595b9262407e093364ec4d29a22962723f0 (patch)
tree26cc1f15a25dbb3a9f2a698c89b85b9c7c37fd0e /perl.c
parent371b7e1ad2e46c79c7794d9b0f41b49157e7653c (diff)
downloadperl-5a844595b9262407e093364ec4d29a22962723f0.tar.gz
queue errors due to strictures rather than printing them as
warnings; symbols that violate strictures do *not* end up in the symbol table anyway, making multiple evals of the same piece of code produce the same errors; errors indicate all locations of a global symbol rather than just the first one; these changes make compile-time failures within evals reliably visible via the return value or contents of $@, and trappable using __DIE__ hooks p4raw-id: //depot/perl@4197
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/perl.c b/perl.c
index de91ed456f..c7cbe7e182 100644
--- a/perl.c
+++ b/perl.c
@@ -443,6 +443,10 @@ perl_destruct(pTHXx)
PL_defstash = 0;
SvREFCNT_dec(hv);
+ /* clear queued errors */
+ SvREFCNT_dec(PL_errors);
+ PL_errors = Nullsv;
+
FREETMPS;
if (destruct_level >= 2 && ckWARN_d(WARN_INTERNAL)) {
if (PL_scopestack_ix != 0)