“我如何打印?”;“完成”;或;失败;在Perl中stdout的最后一行?

“我如何打印?”;“完成”;或;失败;在Perl中stdout的最后一行?,perl,printing,stdout,end-of-line,Perl,Printing,Stdout,End Of Line,我刚刚开始学习Perl,我想编写自己的脚本来扫描文档,并将生成的TIFF文件转换为PDF文件。如果转换成功(使用),我想在行的末尾打印“Done”,但我似乎在Web上找不到这样做的提示 我的猜测是,我必须得到终端的几何形状,并计算我已经打印的字母,但这似乎太复杂了。您有什么建议吗?关于必须检查要打印到的终端的大小,您是对的。有很多方法可以做到这一点,但我所知道的最便携、最可靠的方法是 这样,您就可以获得正在运行的终端的宽度: use Term::Size::Any; my $cols = cha

我刚刚开始学习Perl,我想编写自己的脚本来扫描文档,并将生成的TIFF文件转换为PDF文件。如果转换成功(使用),我想在行的末尾打印“Done”,但我似乎在Web上找不到这样做的提示


我的猜测是,我必须得到终端的几何形状,并计算我已经打印的字母,但这似乎太复杂了。您有什么建议吗?

关于必须检查要打印到的终端的大小,您是对的。有很多方法可以做到这一点,但我所知道的最便携、最可靠的方法是

这样,您就可以获得正在运行的终端的宽度:

use Term::Size::Any;
my $cols = chars *STDOUT{IO};
这样,您就可以打印任何您想要的内容,并添加适量的空白,例如:

printf "% ${cols}s", "Done\n";

还要注意,程序并不总是输出到终端。例如,可以将输出重定向到文件,因此如果确定终端大小失败,您可能希望有适当的回退。

您是将PDF源输出到标准输出还是输出到命名文件?您是否尝试过打印“完成”\n?你能再解释一下你想做什么和你得到了什么吗?你是指线路的尽头还是在终端窗口的一侧?这些意味着不同的事情。