我是Perl的新手 我将下面的数据放入数组中,每个产品都是这个数组的值,
print @array
Product A
Date=2.3.13
Value=100
Time=2.12
Product B
Date=4.5.12
value=20
Description=Goods
Product C
...
...
这些产品可以从A更改为Z,它们的属性也可以更改,有些可以帮我获取以下格式的数据
Product Date Value Descrip Time
A 2.3.13 100 -Nil- -Nil-
B 4.5.12 20 Goods
答案 0 :(得分:-1)
根据作者和评论的其他意见,这里有一个更新的答案。
准备数据结构(哈希)以存储一个产品的数据。
通过解析连续的行,逐个读取产品文件。将一个产品的数据存储在内存中。
完成一个产品后立即打印数据(空行似乎是分隔符)。清除数据。重复。
总的来说,这看起来像这样:
my $empty = {
name => "",
date => "",
value => ""
# etc
};
my $product = $empty;
while (my $line = <$file>) {
if ($line =~ m/^Product\s+(.*)$) {
$product->{name} = $1;
} elsif ($line =~ m/^\s+Date=(\d+\.\d+\.\d+)$/) {
$product->{date} = $1;
} elsif () {
# etc.
} elsif ($line eq "") {
# Empty line
print $product->{name} . "\t" . $product->{date} . "\n"; #etc
# Clear the product data
$product = $empty;
}
}