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 }