[英]How can I convert a file to an HTML table using Perl?
我正在嘗試編寫一個簡單的Perl CGI腳本,該腳本是:
這是.out文件中的一些示例數據:
10.255.202.1 2472327594 1720341
10.255.202.21 2161941840 1484352
10.255.200.0 1642646268 1163742
10.255.200.96 1489876452 1023546
10.255.200.26 1289738466 927513
10.255.202.18 1028316222 706959
10.255.200.36 955477836 703926
任何幫助將非常感激。
以下內容未經測試,可能需要大量拋光,但是給出了一個大概的想法:
use CGI qw/:standard *table/;
print
start_html('clicommand results'),
start_table;
open(my $csvh, 'clicommand |');
while (<$csvh>) {
print Tr(map { td($_) } split);
}
close($csvh);
print
end_table,
end_html;
這不能直接回答您的問題,但是可以改用AWK嗎? 包裝全部內容應該不太困難,然后使用適當的html標記為每個列條目創建一個基本表。
您很可能希望通過使用CSS樣式表或在表中添加邊框來使HTML更漂亮,但這是一個簡單的開始。
#!/usr/bin/perl
use strict;
use warnings;
my $output = `cat dat`;
my @lines = split /\n/, $output;
my @data;
foreach my $line (@lines) {
chomp $line;
my @d = split /\s+/, $line;
push @data, \@d;
}
print <<HEADER;
<html>
<table>
HEADER
foreach my $d (@data) {
print "\t", "<tr>";
print map { "<td>$_</td>" } @$d;
print "</tr>", "\n";
}
print <<FOOTER;
</table>
</html>
FOOTER
這將產生以下輸出:
<html>
<table>
<tr><td>10.255.202.1</td><td>2472327594</td><td>1720341</td></tr>
<tr><td>10.255.202.21</td><td>2161941840</td><td>1484352</td></tr>
<tr><td>10.255.200.0</td><td>1642646268</td><td>1163742</td></tr>
<tr><td>10.255.200.96</td><td>1489876452</td><td>1023546</td></tr>
<tr><td>10.255.200.26</td><td>1289738466</td><td>927513</td></tr>
<tr><td>10.255.202.18</td><td>1028316222</td><td>706959</td></tr>
<tr><td>10.255.200.36</td><td>955477836</td><td>703926</td></tr>
</table>
</html>
要了解如何修改HTML表格的外觀, 表格標記上的w3schools網站條目是一個不錯的開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.