在Perl foreach循环中分配两个变量
是否可以以某种方式将2个变量和2个数组分配给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 提前感谢。如果您
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];
...
}
当然,当两个数组失步,一个数组的元素比另一个多时,问题就来了。我已经清理了代码中的缩进。当然,不客气,但请以后考虑自己做。我已经清理了代码中的缩进。当然欢迎你,但请考虑以后自己做。