例如,我可以在Perl代码的中间使用if语句来创建多个行吗?
感谢您的帮助。
答案 0 :(得分:3)
我猜你有类似
的东西print
table(
Tr(
td(...),
td(...),
td(...),
),
Tr(
td(...),
td(...),
td(...),
),
Tr(
td(...),
td(...),
td(...),
),
);
并且您希望在table
的调用中使用循环和条件。
您不能将语句(包括if (...) { ... }
和for (...) { ... }
)放在表达式的中间(例如子程序调用)。但是,通过使用中间存储,您可以实现您想要的目标。
程序方法:
my @trs;
for my $row (...) {
my @tds;
for my $field (@$row) {
push @tds, td($field);
}
push @trs, Tr(@tds);
}
print table(@trs);
功能方法:
print
table(
map {
Tr(
map {
td($_)
} @$_
)
} ...
);