2013-08-23 54 views
0

我想在Perl中构建一个具有散列和变量的结构,然后创建一个散列,每个字段将包含我创建的结构。 这样的:如何使用哈希散列在Perl中工作?

use Class::Struct; 

struct exmpl => {hash=>'%' , val => '$'}; 
my %hash_of_structs; 
$hash_of_structs { "one" } = exmpl -> new(); 

现在hash_of_structs与包含在结构exmpl“一”键的字段。 我的问题是如何将新值推入结构中的哈希值?

我想通了如何在该结构中的值工作:

$hash_of_structs { "one" } -> val ("1"); 
printf ("The value is: %d\n",$hash_of_structs { "one" }-> val); 

但它不工作,在该结构中的散列以同样的方式。我想:

$hash_of_structs { "one" } => hash{"uno"}("1"); 

谢谢:)

+0

为什么你使用[Class :: Struct](http://p3rl.org/Class::Struct)?它实际上不是一个结构体;这只是一种创建对象的奇怪方式。 (在'use Class :: Struct;'后面添加'Class :: Struct :: printem(1);'看看你的类是如何实现的。) –

回答

1

使用以下语法。如果传递了散列引用,则旧内容会被遗忘,如果提供了两个参数,则会添加一个键 - 值对。

$hash_of_structs{one}->hash({'A', 'a', 'B', 'b'}); 
$hash_of_structs{one}->hash('key', 'value');