亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Perl > 正文

perl的格式化(Format)報表輸出實現代碼

2020-10-31 15:20:15
字體:
來源:轉載
供稿:網友

perl有最好的文本數據處理能力.這是大家都知道的.在perl本身有一個別的軟件沒有的小功能,就是Perl格式.它相當于簡單的命令行報表和圖表輸出.這個需要先聲明格式.創建格式的文件句柄.然后由@,^,<,>,|這樣的字符構成所謂的”報表”來輸出圖表.這樣可以指定出行的外觀.后面接數據項,最后用write來顯示格式化的內容.

樣例:
輸出紀錄格式輸出象下邊一樣定義:
format NAME =
FORMLIST
.

第一部分,聲明.如上.如果省略 NAME,上面的代碼將定義格式輸出 STDOUT。
第二部分,格式行FORMLIST 由一些有序的行組成,每一行都是下面三種類型中的一種:
1. 注釋,以第一列為 # 來表示.
2. 一個格式行,用來定義一個輸出行的格式,就是指上面講的@,^,<,>,|這樣的字符
3. 參數行,數據行,用來向前面的格式行中插入值,都是perl的變量
第三部分, 結束 “.”來表示.

格式行(圖形行)語法:
格式行中每個被替換的部分分別以 @ 或者 ^ 開頭。這些行不作任何形式的變量代換。
@  字段(不要同數組符號 @ 相混淆)是普通的字段。

<, >,|     字段的長度通過在格式符號 @,^ 后跟隨特定長度的 <, >,| 來定義,同時<,>,| 還分別表示,左對齊,右對齊,居中對齊。如果變量超出定義的長度,那么它將被截斷。

^ 字段,用來進行多行文本塊填充。

復制代碼 代碼如下:

$text = "aaa bbb ccc ";
format STDOUT =
first: ^<<<<
    $text
second: ^<<<<
    $text
third: ^<<<<
    $text 
.
write

這樣它會輸出如下:
first: aaa
second: bbb
third: ccc

它默認會對字符串$text進行分解,象split.當然,是以$:存的內容做分割符.
#(在 @ 或 ^ 后邊)   右對齊的另外一種方式,在這些符號后面指定一個數字字段。你可以在這種區域中插入一個 . 來制定小數點的位置。如果這些區域的值包含一個換行符,那么只輸出換行符前面的文本。如@.##就是輸出二位小數.
@*        可以被用來打印多行不截斷的值,也就是多行沒有格式化的輸出.

參數行(數據行)
參數行指定參數的順序必須跟相應的格式行的字段順序一致。不同參數的表達式需要使用逗號分隔。
參數的數據可以是標量數據,也可以是函數的返回值.
參數行被處理之前所有的參數表達式都在列表環境中求值,因此單個列表表達式會產生多個列表元素。
通過使用圓括弧將表達式括起來,可以使表達式擴展到多行 (因此,圓括弧必須是第一行的第一個標志)。這樣就可以將值同相應的格式域對應起來方便閱讀。
表達式中,空白字符 /n,/t,和 /f 總是被解釋成單個空格

格式變量

$~ 中 ($FORMAT_NAME)          格式名字
$^ ($FORMAT_TOP_NAME)         當前的表頭格式名字存儲在
$% ($FORMAT_PAGE_NUMBER)      當前輸出的頁號
$= ($FORMAT_LINES_PER_PAGE)   每頁中的行數
$| ($FORMAT_AUTOFLUSH)      是否自動刷新輸出緩沖區存儲
$^L ($FORMAT_FORMFEED)       在每一頁(除了第一頁)表頭之前需要輸出的字符串存儲在

注:這些變量以文件句柄為基礎設定,因此你需要 select 與特定格式關聯的文件句柄來影響這些格式變量

調用輸出
write
最后直接用write函數來顯示格式化的文本內容.

多頁報表
$%  當前輸出的頁面編號
$=  頁中的行數
$-  還有多少剩下的行數

在使用輸出時,最好建一個表的頂部輸出.這樣看起來會好看很多.

實例代碼:

復制代碼 代碼如下:

#!/usr/bin/perl
use strict;
use warnings;

my ($name,$login,$office,$uid,$gid, $home);
open FD,"</etc/passwd" or die "$?";
while(<FD>){
  ($name,$login,$office,$uid,$gid, $home) = split (":",$_);
    $^ = 'STDOUT_TOP';
    $~ = 'STDOUT';
    $= = 39;
    write;
}

format STDOUT_TOP =
@>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
"Page $%"
                           Passwd File
  Name                Login    Office   Uid   Gid Home
------------------------------------------------------------------
.

format STDOUT =
@<<<<<<<<<<<<<<<<<< @||||||| @<<<<<<@>>>> @>>>> @<<<<<<<<<<<<<<<<<
$name,               $login,  $office,$uid,$gid, $home

.

輸出如下
                                                  Page 3
                           Passwd File
  Name                Login    Office   Uid   Gid Home
--------------------------------------------------------------------
sshd                   x     115    65534       /var/run/sshd
vde2-net               x     116      128       /var/run/vde2
mysql                  x     117      129 MySQL /var/lib/mysql
oracle                 x     1001    1001       /usr/lib/oracle/xe
tomcat6                x     118      130       /usr/share/tomcat6

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级视频在线观看| 亚洲激情中文字幕| 日韩视频亚洲视频| www亚洲精品| 亚洲天堂一区二区三区| 伊人青青综合网站| 欧美自拍视频在线| 国产成人精品视频在线| 亚洲欧美国产精品久久久久久久| 亚洲精品久久7777777| 日韩精品免费在线视频观看| 日韩国产精品视频| 欧美性色视频在线| 91日本在线观看| 亚洲国产精久久久久久| 国产精品欧美久久久| 国产成人在线一区二区| 亚洲性av在线| 亚洲成av人片在线观看香蕉| 亚洲精品日韩久久久| 91社区国产高清| 国产日本欧美在线观看| 粗暴蹂躏中文一区二区三区| 日日摸夜夜添一区| 精品久久久视频| 91av视频在线| 亚洲精品一二区| 亚洲欧美激情在线视频| 亚洲精品天天看| 欧美日韩aaaa| 在线视频欧美日韩精品| 色狠狠av一区二区三区香蕉蜜桃| 亚洲四色影视在线观看| 亚洲已满18点击进入在线看片| 久久91亚洲精品中文字幕奶水| 永久免费精品影视网站| 国产精品香蕉在线观看| 最近的2019中文字幕免费一页| 成人写真福利网| 国产精品1区2区在线观看| 中文字幕综合一区| 国产精品永久免费视频| 欧美日韩免费网站| 精品久久久久久中文字幕一区奶水| 久久久在线视频| 欧美激情视频网站| 亚洲欧美日韩中文视频| 高清一区二区三区四区五区| 亚洲第一区第一页| 91精品国产成人www| 日韩av在线免费看| 欧美韩国理论所午夜片917电影| 国产精品999| 亚洲国产高清福利视频| 96精品视频在线| 日韩性xxxx爱| 日韩欧美在线字幕| 最近2019年日本中文免费字幕| 最近2019中文字幕大全第二页| 国产精品久久精品| 亚洲资源在线看| 成人xvideos免费视频| 久久精品男人天堂| 国产99久久精品一区二区| 人人做人人澡人人爽欧美| 精品中文字幕在线| 日本免费在线精品| 国产日韩在线看| 欧美精品videos| 亚洲国产女人aaa毛片在线| 欧美日韩国产一区二区三区| 国产999精品视频| 国产国产精品人在线视| 日本欧美精品在线| 久久久噜噜噜久久| 久久不射电影网| 色综合亚洲精品激情狠狠| 亚洲国产中文字幕久久网| 4438全国亚洲精品在线观看视频| 国产精品视频午夜| 国产精品视频久久久久| 亚洲人成在线播放| 日韩欧美中文免费| 另类视频在线观看| 一区二区三区美女xx视频| 青青青国产精品一区二区| 日韩精品免费看| 久久久久久久爱| 狠狠躁18三区二区一区| 久久久之久亚州精品露出| 日韩在线免费av| 国产美女被下药99| 欧美国产视频一区二区| 久久精品国产一区二区电影| 国产精品久久久久99| 国产成+人+综合+亚洲欧美丁香花| 免费av在线一区| 色悠久久久久综合先锋影音下载| 色中色综合影院手机版在线观看| 亲爱的老师9免费观看全集电视剧| 精品偷拍一区二区三区在线看| 国内精品400部情侣激情| 国产精品久久久久久久久久久久久久| 亚洲美女性视频| 久久精品人人做人人爽| 亚洲福利在线视频| 久久久久国产一区二区三区| 成人网址在线观看| 国产精品久久久久久久app| 日本在线精品视频| 久久99久久亚洲国产| 日韩av免费在线看| 久久久人成影片一区二区三区| 久热在线中文字幕色999舞| 精品久久香蕉国产线看观看亚洲| 亚洲人成电影在线播放| 91精品综合久久久久久五月天| 亚洲国产精品成人va在线观看| 久久99亚洲精品| 欧美伦理91i| 91精品视频免费| 一区二区三区四区在线观看视频| 久久精品91久久香蕉加勒比| 97超碰国产精品女人人人爽| 91黑丝在线观看| 久久国产精品偷| 色无极影院亚洲| 久久精品国产亚洲精品| 国产一区二区三区日韩欧美| 国产精品一区久久久| 亚洲图片在区色| 欧美性猛交xxxx免费看久久久| 97视频在线观看视频免费视频| 国产精品久久在线观看| 91精品国产综合久久男男| 欧美激情xxxx性bbbb| 国产这里只有精品| 日韩欧美在线字幕| 久久夜色精品国产| 青青草原成人在线视频| 国产精品视频26uuu| 国产成人精品av| 日本一欧美一欧美一亚洲视频| 欧美精品videos另类日本| 国产精品视频自拍| 日韩精品视频在线播放| 国产精品视频地址| 91av在线国产| 2024亚洲男人天堂| 欧美亚洲伦理www| 欧美日韩999| 高清欧美一区二区三区| 77777亚洲午夜久久多人| 欧美性猛交xxxx偷拍洗澡| 中文字幕亚洲激情| 久久国产精品久久精品| 青青草原一区二区| 亚洲精品国产精品乱码不99按摩| 久久天堂av综合合色| 久久九九亚洲综合| 九九热99久久久国产盗摄| 欧美日韩激情美女| 日韩精品中文字幕在线观看| 欧美极度另类性三渗透|