Perl 如何使用->;处理多个值;?

Perl 如何使用->;处理多个值;?,perl,Perl,我是Perl新手,对现有脚本做了一些更改,但我不确定这在Perl中是否是正确的用法。在C#中,我们做的事情不同,那么下面的代码示例正确吗 $group->{$type}{class} = 1; 我添加的代码是 $group->{$type}{class} = 1; $group->{$name}{port} = 1; 是这样吗?$group可以同时指向类型和名称。我用一个示例Perl脚本进行了尝试,它似乎正确地设置并返回了“1”。但我不确定我是否应该这样做。是的,这看起

我是Perl新手,对现有脚本做了一些更改,但我不确定这在Perl中是否是正确的用法。在C#中,我们做的事情不同,那么下面的代码示例正确吗

$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
}

请给出你想要实现的更多细节和简单例子。请给出你想要实现的更多细节和简单例子。谢谢你的澄清。我每天都学新东西:)谢谢你的澄清。我每天都学新东西:)