dup_name("$name") :返回字符串,
$rules->{dup_name("$name")}:在散列rules中找到上面返回的字符串为key对应的value,该value做为一个数组的名字。
push @{$rules->{dup_name("$name")}}, ""; :在该数组中push一个空值(""中为空值,如果里面有其他值的话,就将""中的值push到该数组中了)。
这句的整体的数据结构就是在散列rules中定义了若干的名字(key),每个名字对应一个数组名(value),在程序运行时可以将值动态的push到指定的数组中