Dieses Bit des Codes verhält sich unter Perl 5.8 anders als unter Perl 5.12:
%Vor%Wenn ich es unter 5.8 ausführe, erhalte ich einen Fehler, obwohl ich niemals die Division ausführe:
%Vor%Unter Perl 5.10.1 verhält es sich wie unter 5.12:
%Vor%Ich erhalte die gleichen Ergebnisse mit einer benannten Unterroutine, z. B.
%Vor%Ich sehe nichts in der perl5100delta-Kapsel. Ist das eine undokumentierte Veränderung? Eine unbeabsichtigte Nebenwirkung einer anderen Veränderung? (Zur Erinnerung, ich denke 5.10 und 5.12 machen das Richtige.)
Ich glaube, das war geplant, und ich sehe das erwähnte in perl5100delta.pod :
Ausnahmen beim konstanten Falten
Die konstante Faltungsroutine ist jetzt eingewickelt in einen Ausnahmehandler, und wenn das Falten eine Ausnahme auslöst (z als Versuch, 0/0) zu bewerten, Perl jetzt behält das aktuelle optree, eher als das ganze Programm abzubrechen. Ohne diese Änderung würden Programme nicht kompilieren, wenn sie Ausdrücke hatten das erzeugte Ausnahmen, obwohl diese Ausdrücke in waren Code, der nie erreicht werden konnte Laufzeit. (Nicholas Clark, Dave Mitchell)
Es hat nur mit der Exception dividiert durch Null zu tun, die nicht zu einem Abbruch der Kompilierungsstufe führt.