This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make warn handle magic vars (fixes [perl #97480])
authorFather Chrysostomos <sprout@cpan.org>
Sun, 27 May 2012 07:11:31 +0000 (00:11 -0700)
committerFather Chrysostomos <sprout@cpan.org>
Thu, 7 Jun 2012 15:18:53 +0000 (08:18 -0700)
commitef5fe392ebd662891a80860e9ba74cc961823c81
treefa5984135d374f119a866aa18708f0d7926485cd
parent6954f42f948dcf1dba2014aa06dd5c33b7561992
Make warn handle magic vars (fixes [perl #97480])

pp_warn was checking flags before calling get-magic, resulting in sev-
eral bugs that I fixed all at once::
• warn now calls get-magic exactly once on its argument, when there
  is just one argument (it always worked correctly for multiple)
  [perl #97480].
• warn calls get-magic exactly once on $@ when falling back to it,
  instead of zero times.
• A tied variable returning an object that stringifies as an empty
  string is no longer ignored if the tied variable was not ROK
  before FETCH.
• A tied $@ containing a string, or $@ aliased to $1, is no
  longer ignored.
• A tied $@ that last returned a reference but will return a string on
  the next FETCH now gets "\t...caught" appended.
pp_sys.c
t/op/tie_fetch_count.t
t/op/warn.t