|
1 #!/usr/bin/perl -w
2 use strict;
3 use warnings;
4
5 #分割字符串的一个精妙的写法
6 sub spliteName
7 {
8 my $fileName = shift ;
9 my $arr_hash_ref = shift ;
10 open my $fd ,'<',$fileName or die "open file $fileName error!";
11 #文件格式如 :
12 # girl: lily lucy may hallen # 关键字:名字(使用空格分开)
13 while( <$fd> )
14 {
15 #这种方法先将属性项保存在$1中去掉,再将剩下的用splite分隔得到数组,非常精妙
16 next unless s/^(.+?):\s*// ;
17 $$arr_hash_ref{$1} = [ split ];
18 }
19 }
20
21 sub main
22 {
23 my $fileName = "test.txt";
24 my %array_hash ;
25 spliteName($fileName,\%array_hash);
26 print_arr_hash(\%array_hash);
27 }
28 main();
29
30 sub print_arr_hash
31 {
32 my $arr_hash_ref = shift ;
33 for my $key (keys %$arr_hash_ref)
34 {
35 #注意这里是打印整个数组, 所以记得加上 @
36 print "$key:@{$$arr_hash_ref{$key}} \n";
37 }
38 }
|
|
|