限制glob参数中字符串的大小?

时间:2018-01-30 20:27:25

标签: perl glob

我正在使用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(可能是某种溢出)

你怎么看?

谢谢:)

1 个答案:

答案 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);
   ...
}