Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Good Sphere
Jun 16, 2018

My brain still does not want to accept Perl Idioms with &&, II. Not like C-style, or most of what I've seen.

code:
my ($first, $second) = ( 1, 0 );
print "Truth\n" if $first++ && $second++;
print "First: $first\nSecond: $second\n";
__OUTPUT__
First: 2
Second: 1
# Note: Both are evaluated because the first one is
# true.  But "Truth" isn't printed, because only one
# of the two expressions evaluated "true".
[download]
https://www.perlmonks.org/?node_id=301355

So if you have something like:
if( obj.isTrue() && obj ) { ... }

If obj.isTrue() equals true, then it's going to ignore obj after &&. I know this is obvious those familiar with the language, but it's a notable difference that may not be too obvious to those starting out.

Adbot
ADBOT LOVES YOU

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply