在perl中获取每个可能的子字符串

Mar*_*rra -2 perl substring

我想生成一个字符串的每个可能的连续子字符串,包括单词的结尾/从单词(循环)字母组合开始.我在Python中找到了一个例子,但我所知道的唯一语言是perl(而且几乎没有,我是初学者).如果有人可以帮助我将代码翻译为perl或帮助我在perl中找到解决方案,我将非常感激.

代码如下:

 aa='ABCD'

 F=[]

 B=[]

 for j in range(1,len(aa)+1,1):

for i in range(0,len(aa),1):

    A=str.split(((aa*j)[i:i+j]))

    B=B+A

    C=(B[0:len(aa)*len(aa)-len(aa)+1])
Run Code Online (Sandbox Code Playgroud)

它给你:

C = ['A','B','C','D','AB','BC','CD','DA','ABC','BCD','CDA','DAB' ,'ABCD']`

cho*_*oba 6

#!/usr/bin/perl
use warnings;
use strict;
use feature qw{ say };

my $string = 'ABCD';

my @substrings;
for my $length (1 .. length $string) {
    for my $pos (0 .. length($string) - 1) {
        push @substrings, substr $string x 2, $pos, $length;
    }
}

say for @substrings;
Run Code Online (Sandbox Code Playgroud)