如何使用"或"运算符为变量赋值?

lol*_*ola 2 perl

我是perl的新手.

我想说变量可以取2个值,然后我从另一个函数调用它.

我试过了:

  my(@file) = <${dirname}/*.txt || ${dirname}/*.xml> ;
Run Code Online (Sandbox Code Playgroud)

但这似乎不适用于第二个价值,任何建议?

amo*_*mon 6

使用<*>运算符作为fileglob运算符时,可以使用任何常见的glob模式.可用的模式是

  • * (任意数量的任何字符),
  • ? (任何单个字符),
  • {a,b,c}(任意的a,bc图案),

所以你可以做到

my @file = glob "$dirname/*.{txt,xml}";
Run Code Online (Sandbox Code Playgroud)

要么

my @file = (glob("$dirname/*.txt"), glob("$dirname/*.xml"));
Run Code Online (Sandbox Code Playgroud)

要么

my @file = glob "$dirname/*.txt $dirname/*.xml";
Run Code Online (Sandbox Code Playgroud)

因为glob模式在空白处分成子模式