in reply to yet another prototype bug? (not, please ignore)
hmm ...can't reproduce!
For me both cases are consistent and throw warnings instead of dieing
perl -version This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
code:
BEGIN { $SIG{__WARN__}=sub { print "WARNING: $_[0] \n" }; } $|=1; sub fn1($); fn1("output1"); sub fn1 (\@) { print while $_ = shift; } sub fn2($); fn2("output2"); sub fn2 (\@) { print $_,$/ for @_; }
output:
$ perl /tmp/proto.pl WARNING: Prototype mismatch: sub main::fn1 ($) vs (\@) at /tmp/proto.p +l line 11. WARNING: Prototype mismatch: sub main::fn2 ($) vs (\@) at /tmp/proto.p +l line 18. output1output2
If you want it do die try to catch the /^Prototype mismatch:/ in $SIG{__WARN__}.¹
Cheers Rolf
( addicted to the Perl Programming Language)
UPDATE
¹) or check if categories in warnings help defining "Fatals" on "Prototype mismatch".
In Section
Seekers of Perl Wisdom