2014-09-19 155 views
1

我有一個散列。 hash中的鍵的值是2個字符串的串聯。 ($value1 and $value2
當我打印連接變量$values的值時,它用換行符打印。
但是當我用html表格格式打印時,換行符不存在。我怎樣才能保留換行符。Perl:用換行符打印哈希值

my $value1 = "Good files are 272 :10%"; 
my $value2 = "Bad files are 300 : 15%"; 
my $values = $value1 . $value2; 
print "values : $values "; 

# HASH with multiple values for each key 
my %hash ; 
$keyvalue = "foobar"; 
$hash{$keyvalue} = $values ;  

# SET UP THE TABLE 
print "<table border='1'>"; 
print "<th>Category</th><th>value</th>";  

#Print key and values in hash in tabular format 
foreach $key (sort keys %hash) { 
    print "<tr><td>".$key."</td>"; 
    print "<td>".$hash{$key}."</td>"; 
} 

*電流輸出:*
它打印出的哈希值不換行

values : Good files are 272 :10% 
Bad files are 300 : 15% 

Category Value 
foobar Good files are 272 :10%Bad files are 300 : 15% 

*所需的輸出:*

Category Value 
foobar Good files are 272 :10% 
      Bad files are 300 : 15% 
+0

前四行代碼,不能輸出你提到輸出的前兩行,實際上它會輸出:「值:$值好的文件是272:10%錯誤的文件是300:15%「......它是如何輸出這兩個字符串的,並用換行符分隔它們,儘管第一個字符串中沒有換行符?根據你的代碼,這是不可能的!我認爲你的例子是錯誤的。 – 2014-10-20 19:30:19

回答

2

在HTML中,您使用<br>元素創建一個新行。因此,只需進行搜索和替換 - 用<br>替換輸入中的任何換行符。

既然你串聯$value1$value2,你可以這樣做:

$values = $value1 . '<br>' . $value2;