我使用以下命令来获得一个特定的格式,它的输出在一行中:
MASH P 0 3.64 NAMD P 0 3.79 AGHA P 0 4.50 SARG P 0 4.71 BENG P 0 5.47 BANR P 0 6.75 ABZA P 0 6.25 KALI P 0 6.91
我想要一个每行85个字符的输出,有人能解释一下我如何在这个领域使用打印吗?
您可以使用带有量词的正则表达式:
$_ = 'MASH P 0 3.64 NAMD P 0 3.79 AGHA P 0 4.50 SARG P 0 4.71 BENG P 0 5.47 BANR P 0 6.75 ABZA P 0 6.25 KALI P 0 6.91';
print $&, "n" while /.{1,85}/g;
或者,如果它是一个较大程序的一部分,并且您不想遭受性能损失,请使用${^MATCH}
而不是$&
:
use Syntax::Construct qw{ /p };
print ${^MATCH}, "n" while /.{1,85}/gp;
您也可以使用四个参数substr
:
print substr($_, 0, 85, q()), "n" while $_;