如何使用Perl逐步打印字符串?

use*_*414 3 perl substring substr

my $line2 = ("My cat Garfield");
my $leng2 = length $line2;
my $longmatch;
my $post = 0;
my $letter = 1; 

for(my $post = 0; $post < $leng2; $post++) {
    for($letter = 1; $letter <= $leng2; $letter++) {
        $longmatch = (substr($line2,$post,$letter));
        print $longmatch,  "\n";    
    }   
}
Run Code Online (Sandbox Code Playgroud)

如何消除重复的线?

TLP*_*TLP 6

使用C风格的循环 - for (my $i = 0; $i < 10; $i++)不是perl方式.简单地使用for my $i (0 .. 10).

在这个例子中,我$_在后脚本循环中使用隐式变量,并使用say而不是print来获得自动换行结束:

use v5.10; # used to enable feature say
my $cat = 'my cat is Garfield'; 
say substr($cat, 0, $_) for 1 .. length($cat);
Run Code Online (Sandbox Code Playgroud)