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