给定以下变量:
$test = {
'1' => 'A',
'2' => 'B',
'3' => 'C',
'4' => 'G',
'5' => 'K',
}
如何在不知道我有哪些键的情况下遍历所有作业?
我想用结果作为标签和键作为隐藏值填充一个选择框。
给定以下变量:
$test = {
'1' => 'A',
'2' => 'B',
'3' => 'C',
'4' => 'G',
'5' => 'K',
}
如何在不知道我有哪些键的情况下遍历所有作业?
我想用结果作为标签和键作为隐藏值填充一个选择框。
只需在键上执行 foreach 循环:
#!/usr/bin/perl
use strict;
use warnings;
my $test = {
'1' => 'A',
'2' => 'B',
'3' => 'C',
'4' => 'G',
'5' => 'K',
};
foreach my $key(keys %$test) {
print "key=$key : value=$test->{$key}\n";
}
输出:
key=4 : value=G
key=1 : value=A
key=3 : value=C
key=2 : value=B
key=5 : value=K
您可以使用内置功能each
:
while (my ($key, $value) = each %$test) {
print "key: $key, value: $value\n";
}
你可以找出你有什么钥匙keys
my @keys = keys %$test; # Note that you need to dereference the hash here
或者你可以一次完成整个事情:
print map { "<option value='$_'>$test->{$_}</option>" } keys %$test;
但是您可能需要某种顺序:
print map { "<option value='$_'>$test->{$_}</option>" } sort keys %$test;
……而且您几乎可以肯定将 HTML 生成移到单独的模板系统中会更好。