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到100Perl全局范围置换,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为您建立列表:
谢谢,我不太明白你的问题,但是如果你想做排列,请参阅。不,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]
),这样的文件必须存在。