簡體   English   中英

perl打印表輸出

[英]perl printing table output

我試圖以表格格式打印輸出。

我的劇本:

use strict;
my @heading=("FN","SN","BP","SUBBN","LgcBT");
my @values=("1","0","Front","Mother Board","MIU");
print "\n\n";
&HEADING;
print "\n";
&VALUES;
print "\n\n";

sub HEADING {
    foreach (@heading) {
        my $lgth1=length($_);
        printf "%3s","| ";
        printf "%${lgth1}s",$_;
    }
}

sub VALUES {
    foreach (@values) {
        my $lgth2=length($_);
        printf "%3s","| ";
        printf "%${lgth2}s",$_;
    }
}

輸出:

 | FN | SN | BP | **SUBBN** | LgcBT

 | 1 | 0 | Front | **Mother Board** | MIU

我需要以一種方式打印輸出,如果值比標題長,那么它會自動將標題長度調整為值。

聽起來你應該只使用Data :: Format :: Pretty :: Console

“漂亮打印”文本表有許多模塊; 我最喜歡的是Text :: ASCIITable

這樣做的方法是提前生成一個長度數組:

my @lengths;
for (0..$#lengths) {
    $lengths[$_] = (length($headers[$_]) > length($values[$_])) ? length($headers[$_]) : length($values[$_])
}

當然,有更好的方法來生成更多Perl-ish的@lengths ,但恕我直言這個例子是最容易閱讀的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM