2011-08-06 31 views
2

假設我希望在Perl中打印相當長的短語。像大多數人一樣,我在cmd中運行Perl代碼(以後希望使用可執行代碼)。以可讀的方式打印(Perl)

問題是,因爲每個用戶都有自己的命令行大小,有時代碼會在中間切一個單詞,並在下一行寫完。例如:

This is a te 
xt 

我不想要這樣的事情;我更喜歡看「這是一個\ ntext」。但是,正如所說的,一些用戶有不同大小的命令行,所以我不能手動編輯它。是否有什麼可以完成打印所有單詞?

+2

你需要獲得終端寬度 - 看到這個問題[如何檢索perl的終端寬度(HTTP ://stackoverflow.com/questions/1782107/how-do-i-retrieve-the-terminal-width-in-perl)另請參閱核心模塊[Text :: Wrap](http://perldoc.perl.org /Text/Wrap.html) – ErikR

回答

5

使用核心模塊Text::Wrap與模塊Term::ReadKey來獲得當前終端寬度:

use Term::ReadKey; 
use Text::Wrap; 

my ($width, $height, $wpixels, $hpixels) = GetTerminalSize(); 
$Text::Wrap::columns = $width; 
print wrap('', '', $text); 
+0

這很有效,非常感謝! – Rob