Perl glob范围排列

时间:2010-12-24 01:36:21

标签: perl range glob

需要使用Perl来创建排列

需要知道glob是否允许我根据范围创建不同的排列:数字或字符串 [1..9]或[' a' - ' z']

实施例: perl -le' print for glob" {L,E,V} {1,2,3,4,5}"' 我想不要手动输入1,2 ... 5。 Possibilites从1到100,值L E V

  1. 感谢

3 个答案:

答案 0 :(得分:2)

不,除非存在具有所有这些名称的文件,否则glob不会这样做。无论文件是否存在,只有明确列出的文件名部分由glob返回。

但您可以使用perl为您建立列表:

@list = glob '{L,E,V}{' . join(',', 1..100) . '}';

然而,因为使用glob的唯一真正原因是它是多么容易和简洁,所以在这一点上寻找非全局解决方案是有意义的。

这是一个:

@list = map {
    my $lev = $_;
    map $lev . $_, 1..100;
} qw/L E V/;

答案 1 :(得分:0)

我真的不明白你的问题,但如果你想做排列,请参阅Perl FAQ

答案 2 :(得分:0)

来自perldoc -f glob

  

如果非空括号是唯一的   glob中使用的通配符,   没有匹配的文件名,但是   可能会返回许多字符串。   例如,这会产生九个   字符串,每个配对一个   水果和颜色:

     
      
  1. @many = glob“{apple,tomato,cherry} = {green,yellow,red}”;
  2.   

如您所见,此功能仅适用于{}元语法。