在Perl中初始化标量变量时是否允许使用布尔运算符?

Kyl*_*ise 1 perl boolean initialization

例如,我可以这样写:

my $var = "A" || "B";

哪里($var eq "A")($var eq "B")都会评价为真?如果没有,有什么方法可以解决这个问题吗?

Dav*_*oss 7

您在寻找Quantum :: Superpositions吗?

更新:一个例子.

#!/usr/bin/perl

use strict;
use warnings;
use feature 'say';

use Quantum::Superpositions;

my $var = any('A', 'B', 'C');

for ('A', 'B') {
  if ($var eq $_) {
    say "\$var equals $_";
  } else {
    say "\$var doesn't equal $_";
  }
}
Run Code Online (Sandbox Code Playgroud)

输出:

$var equals A
$var equals B
$var doesn't equal C
Run Code Online (Sandbox Code Playgroud)

  • 在我从未找到实际用途的所有模块中,Quantum :: Superpositions一直是我的最爱. (3认同)
  • 哇!我之前从未注意过这个模块.多奇怪.虽然很好的回答,但从表面上看,我会使用`my $ var = {A => 1,B => 1}`和`if($ var - > {$ _})` (2认同)