perldoc perlop

在論壇上瞅見別人用「//=」操做符,很是的糊塗,查了一下。 less

關於「//=」操做符: ide

 C-style Logical Defined-Or ui

       Although it has no direct equivalent in C, Perl's "//" operator is        related to its C-style or.  In fact, it's exactly the same as "||",        except that it tests the left hand side's definedness instead of its        truth.  Thus, "$a // $b" is similar to "defined($a) || $b" (except that        it returns the value of $a rather than the value of "defined($a)") and        yields the same result as "defined($a) ? $a : $b" (except that the        ternary-operator form can be used as a lvalue, while "$a // $b"        cannot).  This is very useful for providing default values for        variables.  If you actually want to test if at least one of $a and $b        is defined, use "defined($a // $b)".        The "||", "//" and "&&" operators return the last value evaluated        (unlike C's "||" and "&&", which return 0 or 1). Thus, a reasonably        portable way to find out the home directory might be:            $home =  $ENV{HOME}                  // $ENV{LOGDIR}                  // (getpwuid($<))[7]                  // die "You're homeless!\n";
相關文章
相關標籤/搜索