in reply to RFC: "assignary" operator ?= :
G'day richard.sharpe,
$var ?= "something" : "something else";
I suspect something along these lines would do what you want using existing syntax:
$var = ("something else", "something")[!!$var];
Some examples:
$ perl -E 'my $x; $x = (0,1)[!!$x]; say $x' 0 $ perl -E 'my $x = ""; $x = (0,1)[!!$x]; say $x' 0 $ perl -E 'my $x = "X"; $x = (0,1)[!!$x]; say $x' 1
From "Re^2: RFC: "assignary" operator ?= :":
$var1 ?= die "ERROR: \$var1 already set." : $var2;
You could do something rather exotic like:
$ perl -E 'my $x = ""; $x = (42, $x && die "Set: $x")[!!$x]; say $x' 42 $ perl -E 'my $x = "X"; $x = (42, $x && die "Set: $x")[!!$x]; say $x' Set: X at -e line 1.
But ask yourself:
— Ken
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: RFC: "assignary" operator ?= :
by Anonymous Monk on Dec 09, 2019 at 07:01 UTC |