五一闲暇,看完了一本Perl实例精解(第4版)的电子书,这是第19章最后的一个例题。拿来练练手,以犒赏自己所学知识的过程。


下面的源文件是用来被格式化的文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
cat xxx 
Exotic Liquids:Charlotte Cooper:(171) 555-2222
New Orleans Cajun Delights:Shelley Burke:(100) 555-4822
Grandma Kelly's Homestead:Regina Murphy:(313) 555-5735
Tokyo Traders:Yoshi Nagase:(03) 3555-5011
Cooperativa de Quesos 'Las Cabras':Antonio del Valle Saavedra:(98) 598 76 54
Mayumi's:Mayumi Ohno:(06) 431-7877
Pavlova, Ltd.:Ian Devling:(03) 444-2343
Specialty Biscuits, Ltd.:Peter Wilson:(161) 555-4448
PB KnSckebrod AB:Lars Peterson:031-987 65 43
Refrescos Americanas LTDA:Carlos Diaz:(11) 555 4640
Heli Snwaren GmbH & Co. KG:Petra Winkler:(010) 9984510
Plutzer LebensmittelgromSrkte AG:Martin Bein:(069) 992755
Nord-Ost-Fisch Handelsgesellschaft mbH :Sven Petersen:(04721) 8713
Formaggi Fortini s.r.l.:Elio Rossi:(0544) 60323
Norske Meierier:Beate Vileid:(0)2-953010
Bigfoot Breweries:Cheryl Saylor:(503) 555-9931
Svensk Sjofoda AB:Michael Bjorn:08-123 45 67
Aux joyeux ecclTsiastiques:GuylFne Nodier:(1) 03.83.00.68 
New England Seafood Cannery:Robb Merchant:(617) 555-3267
Leka Trading:Chandra Leka:555-8787
Lyngbysild:Niels Petersen:43844108
Zaanse Snoepfabriek:Dirk Luchte:(12345) 1212
Karkki Oy:Anne Heikkonen:(953) 10956
G'day, Mate:Wendy Mackenzie:(02) 555-5914
Ma Maison:Jean-Guy Lauzon:(514) 555-9022
Pasta Buttini s.r.l.:Giovanni Giudici:(089) 6547665
Escargots Nouveaux:Marie Delamare:85.57.00.07
Gai pGturage:Eliane Noz:38.76.98.06
ForOts d'Trables:Chantal Goulet:(514) 555-2955


这个文件是自己所写的代码文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
cat example19.pl 
open(FH, "<xxx") or die "Can't open xxx: $!\n";
 
$headline = "+" "-" x 12 . "+" "-" x 40 . "+""-" x 28 . "+" "-" x 17 . "+";
$field1 = ">" x 9;
$field2 = "<" x 37;
$field3 = "<" x 25;
$field4 = "<" x 14;
 
$format_top = qq(
format STDOUT_TOP =
$headline
| supplierid | companyname                            | contactname                | phone           |
$headline
.
);
 
$format = qq(
format STDOUT =
| \@$field1 | \@$field2 | \@$field3 | \@$field4 |
 \$.,      \$compayname, \$contactname, \$phone
.
);
 
eval $format_top;
eval $format;
 
while (<FH>) {
    ($compayname, $contactname, $phone) = split(/:/);
    write;
}
 
close(FH);
 
print $headline, "\n";


这是运行后的结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$ perl example19.pl
+------------+----------------------------------------+----------------------------+-----------------+
| supplierid | companyname                            | contactname                | phone           |
+------------+----------------------------------------+----------------------------+-----------------+
|          1 | Exotic Liquids                         | Charlotte Cooper           | (171) 555-2222  |
|          2 | New Orleans Cajun Delights             | Shelley Burke              | (100) 555-4822  |
|          3 | Grandma Kelly's Homestead              | Regina Murphy              | (313) 555-5735  |

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Perl语言的多线程(一)发布时间:2022-07-22
下一篇:
Perl 模块发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap