in reply to Re: Existing module for PerlX::Maybe except for hash existence?
in thread Existing module for PerlX::Maybe except for hash existence?

I tend to agree that differentiating between "argument not passed" and "argument is undef" is tricky, and from experience with my own modules there is a simple situation where it is problematic: un-setting individual arguments later. You can say function(%defaults, option=>undef) to override $defaults{option} back to undef, but removing a key from %defaults is not really a viable option when, just for example, the defaults and overriding options come from JSON files.

Replies are listed 'Best First'.
Re^3: Existing module for PerlX::Maybe except for hash existence?
by etj (Priest) on Feb 25, 2025 at 18:40 UTC
    This point also seems to be evidence for treating "not existing" and "not defined" as the same, since passing an explicit `undef` there would restore that `function` to "use a default value for `option`".