Perl全局范围置换

Perl全局范围置换,perl,range,glob,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。 对于L E V值,可能性从1到100 L L L L L 谢谢,我不太明白你的问题,但是如果你想做排列,请参阅。不,glob不做,除非存在所有这些名称的文件。无论文件是否存在,glob只返回显式列出的文件名部分 但是您可以使用perl为您建立列表:

需要使用Perl来创建置换

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

示例: perl-le'print for glob“{L,E,V}{1,2,3,4,5}” 我不想手动输入1,2…5。 对于L E V值,可能性从1到100

  • L
  • L
  • L
  • L
  • L

  • 谢谢,我不太明白你的问题,但是如果你想做排列,请参阅。

    不,glob不做,除非存在所有这些名称的文件。无论文件是否存在,glob只返回显式列出的文件名部分

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

    @list = glob '{L,E,V}{' . join(',', 1..100) . '}';
    
    然而,由于使用glob的唯一真正原因是它是多么简单和简洁,因此在这一点上,寻找非glob解决方案是有意义的

    这里有一个:

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

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

  • @许多=球形“{苹果、番茄、樱桃}={绿色、黄色、红色}”
    如您所见,此功能仅适用于
    {}
    元表示法。

    对不起,您错了。看起来你并不知道glob是如何工作的
    perl-le'print for glob“{L,E,V}{1,2,3,4,5}”|wc
    会生成15行不存在的文件,正如人们所希望的那样。最好编辑你的答案,这样它就不会歪曲事实,这是我能用的最仁慈的方式来表达它。@tchrist:你误解了我。glob显然会组装并返回“明确列出的文件名部分”,无论文件是否存在,如问题和我的回答中所示。但是要使用范围,正如问题所要求的那样(类似于
    glob'{L,E,V}[1-9]
    ),这样的文件必须存在。