如何在Perl中创建柱状输出?

sid*_*com 5 perl printf

!/ usr/bin/env perl

 use warnings;
 use strict;

 my $text = 'hello ' x 30;

 printf "%-20s : %s\n", 'very important text', $text;
Run Code Online (Sandbox Code Playgroud)

这个脚本的输出看起来更像这样:

very important text      : hello hello hello  hello
hello hello hello hello hello hello hello hello
hello hello hello hello hello hello hello hello
...
Run Code Online (Sandbox Code Playgroud)

但我想要一个像这样的输出:

very important text: hello hello hello hello
                     hello hello hello hello
                     hello hello hello hello
                     ...
Run Code Online (Sandbox Code Playgroud)

我忘了提到:文本应该有一个开放的结尾,因为文本行的右端应该对应于终端的大小.

我怎样才能更改脚本以达到目标?

jus*_*ime 5

你可以使用Text :: Wrap:

use strict;
use Text::Wrap;

my $text = "hello " x 30;
my $init = ' ' x 20;
$Text::Wrap::columns = 80;

print wrap ( '', $init,  'very important text : ' . $text );
Run Code Online (Sandbox Code Playgroud)