perl - 如何使用 Perl 增量打印字符串?

标签 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";    
    }   
}

如何消除重复的线条??

最佳答案

使用 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);

关于perl - 如何使用 Perl 增量打印字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8194729/

相关文章:

perl - 后缀取消引用 say((\@a)->@*) v5.22

mysql - Perl DBI/Mysql Unicode 错误

c++ - 日期格式操作(YYYY/MM/DD-to-MM/DD/YYYY)

sql-server - 如何从文本 (NVARCHAR(MAX)) 列中提取一个或多个 URL

php - 如何防止显示菱形问号符号,即使使用 mb_substr 和 utf-8

php - 如何在任何页面上显示 OpenCart 上的小计?

regex - SQLite:使用包含多个分隔符的字符串中的X列的子字符串来更新Y列

perl - 使用 perl 登录的表单提交

perl - 冒号和逗号之间的 Grep 数字

string - 当我知道其中的一部分时,从短语中获取整个单词(链接)