我正在使用glob
函数来分解某些列表。
到目前为止一切正常,似乎glob
函数在字符串执行一定长度时不起作用。
在我的代码中,我有类似
的内容my @output = glob("{a,b,c}__{d,e,f}__{g,h,i}");
并获得输出
"a__d__g","a__d__h",...,"c__f__i"
当字符串太长时出现问题,似乎它在字符串长度超过254个字符(254不包括)的情况下开始(没有{
和}
)
当字符串太长时,glob函数不会在每个{}
上进行连接,它会在" group"之前结束。使字符串执行254个字符
它是glob的已知限制吗?有什么可以做的吗?
我相信这是一个限制因为255 = b11111111(可能是某种溢出)
你怎么看?
谢谢:)
答案 0 :(得分:2)
替代解决方案:
use Algorithm::Loops qw( NestedLoops );
my $iter = NestedLoops([
[qw( a b c )],
[qw( d e f )],
[qw( g h i )],
]);
while (my @vals = $iter->()) {
my $s = join("__", @vals);
...
}