如果您可以使用普通哈希来描述您的数据,则使用普通哈希。但是,当您的数据结构变得有点复杂时,您将需要使用引用。
想象一个程序,我在其中存储有关库存项目的信息,以及我有多少库存。一个简单的哈希效果很好:
$item{XP232} = 324;
$item{BV348} = 145;
$item{ZZ310} = 485;
如果您所做的只是创建可以读取文件并为报告存储简单信息的快速程序,则根本不需要使用引用。
但是,当事情变得更复杂时,您需要参考。例如,我的程序不只是跟踪我的库存,我正在跟踪我的库存的所有方面。库存物品也有名称、创建它们的公司等。在这种情况下,我希望我的哈希不指向单个数据点(我的库存物品数量),而是对哈希的引用:
$item{XP232}->{DESCRIPTION} = "Blue Widget";
$item{XP232}->{IN_STOCK} = 324;
$item{XP232}->{MANUFACTURER} = "The Great American Widget Company";
$item{BV348}->{DESCRIPTION} = "A Small Purple Whatzit";
$item{BV348}->{IN_STOCK} = 145;
$item{BV348}->{MANUFACTURER} = "Acme Whatzit Company";
你可以做各种古怪的事情来做这样的事情(比如为每个字段设置单独的哈希值,或者将所有字段放在一个用冒号分隔的单个值中),但是使用引用来存储这些更复杂的结构更容易。