Perl 如何使用->;处理多个值;?
我是Perl新手,对现有脚本做了一些更改,但我不确定这在Perl中是否是正确的用法。在C#中,我们做的事情不同,那么下面的代码示例正确吗Perl 如何使用->;处理多个值;?,perl,Perl,我是Perl新手,对现有脚本做了一些更改,但我不确定这在Perl中是否是正确的用法。在C#中,我们做的事情不同,那么下面的代码示例正确吗 $group->{$type}{class} = 1; 我添加的代码是 $group->{$type}{class} = 1; $group->{$name}{port} = 1; 是这样吗?$group可以同时指向类型和名称。我用一个示例Perl脚本进行了尝试,它似乎正确地设置并返回了“1”。但我不确定我是否应该这样做。是的,这看起
$group->{$type}{class} = 1;
我添加的代码是
$group->{$type}{class} = 1;
$group->{$name}{port} = 1;
是这样吗?$group可以同时指向类型和名称。我用一个示例Perl脚本进行了尝试,它似乎正确地设置并返回了“1”。但我不确定我是否应该这样做。是的,这看起来是正确的。您正在构建一个复杂的数据结构,特别是(HoH)。
组
散列有两个键,$type
和$name
。$type
子目录有一个键,class
。$name
子目录有一个键,端口
。大致上,如果您将其丢弃或同时声明,它看起来是这样的:
$group = {
$type => {
class => 1
},
$name => {
port => 1
}
}
当然,
$type
和$name
将根据它们设置的值进行计算。它不会将引用存储在哈希中 是的,看起来不错。您正在构建一个复杂的数据结构,特别是(HoH)。组
散列有两个键,$type
和$name
。$type
子目录有一个键,class
。$name
子目录有一个键,端口
。大致上,如果您将其丢弃或同时声明,它看起来是这样的:
$group = {
$type => {
class => 1
},
$name => {
port => 1
}
}
当然,
$type
和$name
将根据它们设置的值进行计算。它不会将引用存储在哈希中 嗯。。。这是perl。如果它起作用,那就是对的。但是,对于你的问题。在您的代码中,$group
是对散列的引用(在c#中可能称为字典
)。我想你可能正在寻找这个:
my $group={}; # make the ref
my @types = ('hot','cold','warm'); # make some types
my @names = ('sink','bath','drain'); # and some names
foreach my $type (@types){
$group->{'type'}->{$type}++; # add a new $type to the "type" sub hash
}
foreach my $name (@names){
$group->{'name'}->{$name}++; # add a new $nameto the "name" sub hash
}
现在,在类型之间循环,例如:
foreach my $typeKey (keys %{$group->{'type'}}){
print "type is " . $typeKey; # this is from the @types array
print ", value = " . $group->{'type'}->{$typeKey}; # this would be 1
}
嗯。。。这是perl。如果它起作用,那就是对的。但是,对于你的问题。在您的代码中,
$group
是对散列的引用(在c#中可能称为字典
)。我想你可能正在寻找这个:
my $group={}; # make the ref
my @types = ('hot','cold','warm'); # make some types
my @names = ('sink','bath','drain'); # and some names
foreach my $type (@types){
$group->{'type'}->{$type}++; # add a new $type to the "type" sub hash
}
foreach my $name (@names){
$group->{'name'}->{$name}++; # add a new $nameto the "name" sub hash
}
现在,在类型之间循环,例如:
foreach my $typeKey (keys %{$group->{'type'}}){
print "type is " . $typeKey; # this is from the @types array
print ", value = " . $group->{'type'}->{$typeKey}; # this would be 1
}
请给出你想要实现的更多细节和简单例子。请给出你想要实现的更多细节和简单例子。谢谢你的澄清。我每天都学新东西:)谢谢你的澄清。我每天都学新东西:)