perl - 如何使用 "or "运算符为变量分配多个值?

标签 perl

我是 Perl 新手。

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

我尝试过:

  my(@file) = <${dirname}/*.txt || ${dirname}/*.xml> ;

但这似乎不适用于第二个值,有什么建议吗?

最佳答案

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

  • * (任意数量的任意字符),
  • ? (任何单个字符),
  • {a,b,c} (任何 abc 模式),

所以你可以这样做

my @file = glob "$dirname/*.{txt,xml}";

my @file = (glob("$dirname/*.txt"), glob("$dirname/*.xml"));

my @file = glob "$dirname/*.txt $dirname/*.xml";

因为全局模式在空白处被分割成子模式

关于perl - 如何使用 "or "运算符为变量分配多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16296720/

相关文章:

perl - 当我在运行时只知道变量的名称时,如何本地化另一个包中的变量?

perl - perl 中的自定义数组排序

perl - 在同一语句中使用 shift 和 @_ 是否安全?

Regexp::Grammars 在调试时成功,在没有调试时失败

regex - 使用正则表达式替换替换多个字符

python - 优化 shell 脚本 (bash) 以提高性能

mysql - 尝试使用 macports mysql 和 perl 安装 DBD::mysql 失败 make test [Snow Leopard]

Perl 1,000 子程序重新定义

perl - 谁能用 Perl 解释一下(我的 $self = shift)

perl - ubuntu apache2 cgi 输出缓冲