我在perl中有以下代码,它将数组的每个值输出到一个新的HTML表单元格和表行
print "<tr><td>$_<br/></td></tr>n" for @fruitArray;
数组的内容如下:
APPLE|0
ORANGE|0
PEAR|1
GRAPE|0
TOMATO|1
我想打印第一个表格单元格中|之前的所有内容,然后打印该行上第二个表格单元格的|之后的所有内容
我想我需要使用regex,比如:
/([|])w+/
只是不确定在一行中打印的确切语法
这是一个非常简单的
use strict;
use warnings 'all';
my @data = qw/
APPLE|0
ORANGE|0
PEAR|1
GRAPE|0
TOMATO|1
/;
print "<table>n";
printf " <tr><td>%s</td><td>%s</td></tr>n", split /|/ for @data;
print "</table>n";
输出
<table>
<tr><td>APPLE</td><td>0</td></tr>
<tr><td>ORANGE</td><td>0</td></tr>
<tr><td>PEAR</td><td>1</td></tr>
<tr><td>GRAPE</td><td>0</td></tr>
<tr><td>TOMATO</td><td>1</td></tr>
</table>
您可能需要以下内容
#!/usr/bin/perl
use strict;
use warnings;
my @names = ("APPLE|0", "ORANGE|0", "PEAR|1", "GRAPE|0", "TOMATO|1");
foreach my $n (@names) {
while ($n =~ m/(.*?)|(d+)/g) {
print "<tr><td>$1<br/></td></tr>n";
print "<tr><td>$2<br/></td></tr>n";
}
}
输出:
<tr><td>APPLE<br/></td></tr>
<tr><td>0<br/></td></tr>
<tr><td>ORANGE<br/></td></tr>
<tr><td>0<br/></td></tr>
<tr><td>PEAR<br/></td></tr>
<tr><td>1<br/></td></tr>
<tr><td>GRAPE<br/></td></tr>
<tr><td>0<br/></td></tr>
<tr><td>TOMATO<br/></td></tr>
<tr><td>1<br/></td></tr>
演示:
http://ideone.com/QPOvzd