如何在perl中使用printf格式化

时间:2016-02-20 20:26:10

标签: perl

我正在尝试在屏幕上的特定位置进行打印,当我对yaxis值进行硬编码时,它可以正常工作并且格式正确但是当我将$yaxis作为参数传递给{{1}时它不起作用}。相反,它只打印第一个单词,如图所示。知道为什么吗?我该如何解决这个问题?

printf

2 个答案:

答案 0 :(得分:2)

我无法重现您的问题。

use strict;
use warnings;

my $var= "Hello, this is test output";
printf ("%20s\n", $var);

my $yaxis= 20;
printf ("%${yaxis}s\n", $var);

输出:

Hello, this is test output
Hello, this is test output

答案 1 :(得分:1)

如果你想要做的是使用变量来缩进字符串输出,请尝试这个小修改:

my $var= "Hello, this is test output";
printf ("%20s\n", $var);
my $indent = 20;
printf ("%${indent}s%s\n", "", $var);

将输出:

Hello, this is test output
                    Hello, this is test output