So that was a bit of a surprise.
Thanks for the insights! On 03.12.20 23:25, Elizabeth Mattijsen wrote:
Nil is really a Failure that doesn't throw. It indicates the absence of a value where there is one expected. That is why Nil doesn't throw. If you want to indicate a soft failure, you should use fail(). If the chain of methods you mention are core methods, and one of them is returning Nil, then perhaps we have a bug. Could you elaborate on the situation where you encountered this?On 3 Dec 2020, at 15:22, Konrad Bucheli via perl6-users <perl6-us...@perl.org> wrote: On 02.12.20 15:55, Ralph Mellor wrote:On Wed, Dec 2, 2020 at 7:08 AM Patrick R. Michaud <pmich...@pobox.com> wrote:Nil.any_non_existent method always seems to return Nil. I'm not sure where this is documentedIt's near the top of the `Nil` doc page you linked:Any method call on `Nil` of a method that does not exist ... will succeed and return `Nil`.OK, that is intentional and documented then. What is actually the rationale for such a behaviour? For me it was an unexpected trap as I had a chain of methods which should do some side effect. It all went fine only the side effect was not there. I then figured out after some time that one of methods returned Nil and somehow silently it did not do what I expected. Thanks Konrad
-- Konrad Bucheli Systems Engineering Fellow O. +41 58 100 10 10 W. open-systems.com Open Systems
smime.p7s
Description: S/MIME Cryptographic Signature