如何使用Perl在后续订单中获取所有可能的相邻项组合?

前端之家收集整理的这篇文章主要介绍了如何使用Perl在后续订单中获取所有可能的相邻项组合?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,我有一个数组

my @arr = qw(0 1 2 3 4);

如何获得以下组合:

0
01
012
0123
01234
1
12
123
1234
2
23
234
3
34
4

如果有的话,这种组合(或排列)的名称是什么?

永远感谢!

解决方法

使用数组切片:

#! /usr/bin/perl

use warnings;
use strict;

my @arr = qw(0 1 2 3 4);

my @result;
for (my $i = 0; $i < @arr; $i++) {
  for (my $j = $i; $j < @arr; $j++) {
    push @result => [ @arr[$i .. $j] ];
  }
}

print @$_,"\n" for @result;

输出

0
01
012
0123
01234
1
12
123
1234
2
23
234
3
34
4

猜你在找的Perl相关文章