KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
There's a bunch out there, as Perl is a pretty sugary language, but the most used statements in any language is the combination of if statements and setting values. I think I've found many of them, but there's still a few gaps. Ultimately, the goal would be to not have to write a variable name more than once: Here's what I have so far: $r ||= $s; # $r = $s unless ($r); $r //= $s; # $r = $s unless (defined $r); $r &&= $s; # $r = $s if ($r); $r = $c ? $s : $t; # if ($c) { $r = $s } else { $r = $t } $c ? $r : $s = $t; # if ($c) { $r = $t } else { $s = $t } $r = $s || $t; # if ($s) { $r = $s } else { $r = $t } $r = $s && $t; # if ($s) { $r = $t } else { $r = $s = undef, 0, untrue, etc. } $c and return $r; # return $r if ($c); $c or return $r; # return $r unless ($c); $c and $r = $s; # $r = $s if ($c); @$r{qw(a b c d)} # ($r->{a}, $r->{b}, $r->{c}, $r->{d}) Somebody also had a really interesting article on a "secret operator", shown here: my @part = ( 'http://example.net/app', ( 'admin' ) x!! $is_admin_link, ( $subsite ) x!! defined $subsite, $mode, ( $id ) x!! defined $id, ( $submode ) x!! defined $submode, ); However, what I've found to be missing from the list is: $r <= $s; # read as "$r = min($r, $s);" except with short-circuiting $r = $s if (defined $s); # what's the opposite of //? $r and return $r # can that be done without repeating $r? Is there anything else worth adding? What other conditional set variables are available to reduce the code? What else is missing?
Tags (comma-separated)
Save Edits
Cancel