在Perl foreach循环中分配两个变量

在Perl foreach循环中分配两个变量,perl,foreach,Perl,Foreach,是否可以以某种方式将2个变量和2个数组分配给foreach循环?这是我的密码 ARRAYS: $self->{types} = [qw(DIA UPD UP2 BGD ENQ)]; $self->{status} = [qw(Waiting Running Stopped Shutdown Reserviert)]; 我需要打印上面类型数组中的数据…就像我以前在sprint中做的一样 类似于$self->{num_types}->{$types},$types 提前感谢。如果您

是否可以以某种方式将2个变量和2个数组分配给foreach循环?这是我的密码

ARRAYS:

$self->{types} = [qw(DIA UPD UP2 BGD ENQ)];
$self->{status} = [qw(Waiting Running Stopped Shutdown Reserviert)];

我需要打印上面类型数组中的数据…就像我以前在sprint中做的一样

类似于
$self->{num_types}->{$types},$types


提前感谢。

如果您发现自己必须同时穿越两个阵列,那么值得一问的是您是否可以将两个阵列合并为一个阵列

$self->{data} = [{
  type   => 'DIA',
  status => 'Waiting',
}, {
  type   => 'UPD',
  status => 'Running',
}, {
  # etc
}];
然后你可以像这样走路:

foreach my $data (@{ $self->{data} }) {
  my $type   = $data->{type};
  my $status = $data->{status};
  ...
}
但是,如果不想更改现有的数据结构,则需要遍历数组索引,而不是数组元素

foreach my $i (0 .. $#{ $self->{status} }) {
  my $status = $self->{status}[$i];
  my $type   = $self->{type}[$i];
  ...
}

当然,当两个阵列不同步,其中一个阵列的元素比另一个阵列多时,问题就来了。

如果您发现自己必须同时穿过两个阵列,那么有必要询问您是否可以将两个阵列合并为一个阵列

$self->{data} = [{
  type   => 'DIA',
  status => 'Waiting',
}, {
  type   => 'UPD',
  status => 'Running',
}, {
  # etc
}];
然后你可以像这样走路:

foreach my $data (@{ $self->{data} }) {
  my $type   = $data->{type};
  my $status = $data->{status};
  ...
}
但是,如果不想更改现有的数据结构,则需要遍历数组索引,而不是数组元素

foreach my $i (0 .. $#{ $self->{status} }) {
  my $status = $self->{status}[$i];
  my $type   = $self->{type}[$i];
  ...
}

当然,当两个数组失步,一个数组的元素比另一个多时,问题就来了。

我已经清理了代码中的缩进。当然,不客气,但请以后考虑自己做。我已经清理了代码中的缩进。当然欢迎你,但请考虑以后自己做。