Skip to content
Provides a ?? !! equivalent that tests for definedness instread of trueness.
Other
  1. Other 100.0%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib/Operator
t
.travis.yml
LICENSE
META6.json
README.md

README.md

Operator::defined-alternation

Build Status

Perl 6 provides control statements and operators to test for definedness instead of trueness, to provide ease of typing and a clear statement of intend from the programmer. Sadly there is currently no way to define your own ternary operators with Rakudo. However, we can emulate operators with 3 arguments with a chain of 2 infix operators, as long as we provide a type for the 2nd infix to handle dispatch properly.

Usage:

use v6;
use Operator::defined-alternation;

my $falsish = 2 but False;
say $falsish ?// 'defined' !! 'undefined';
# OUTPUT: defined
# What is equivalent to:
say $falsish.defined ?? 'defined' !! 'undefined'; 
# OUTPUT: defined
# But opposed to:
say $falsish ?? 'true' !! 'false'; 
# OUTPUT: false 

License

(c) Wenzel P. P. Peppmeyer, Released under Artistic License 2.0.

You can’t perform that action at this time.