2010-04-29 41 views
2

我試圖寫一個簡單的Perl CGI腳本:如何使用Perl將文件轉換爲HTML表格?

  • 運行的CLI腳本
  • 讀取產生的.out文件和數據文件的HTML表中轉換。

下面是從.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 

任何幫助將非常感激。

+4

到目前爲止,你有什麼,它怎麼不工作? – 2010-04-29 22:27:34

+1

這是功課嗎? – Ether 2010-04-29 23:43:13

回答

0

這不會直接回答你的問題,但是可以使用AWK嗎?包裝整個內容應該不會太困難,然後用適當的html標籤創建基本表格。

+3

是的,可以使用任何圖靈完成語言來完成這項任務。儘管恕我直言,這種文本處理任務在Perl的舵手中是正確的。 – mob 2010-04-29 22:59:16

1

以下是未經測試,可能需要拋光 的很多,但它給出了一個粗略的想法:

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; 
+0

作爲一般規則,您應該在輸出字符串之前對任何HTML元字符進行編碼(例如'<' ->'<')。試試HTML :: Entities :: encode_entities。 – rjh 2010-04-29 23:26:10

+0

太好了,謝謝,我會試試看。不,不是作業,只是我正在研究的一個小項目,我真的不知道Perl :) – user329313 2010-04-30 03:06:08

0

你很可能希望通過使用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 website entry on the table tag是一個良好的開端。

+0

我並不真正瞭解工作代碼的downvote。 – 2010-05-03 05:53:19

相關問題