假设我有一个数组:
@array = {
'A' => "",
'B' => 0,
'C' => 0,
'D' => 0,
};
我可以通过以下方式添加元素:
$count = 0;
$array[$count]->{A} = "abcd";
$array[$count]->{B} = 789;
$array[$count]->{C} = 456;
$array[$count]->{D} = 123;
和另一个元素,
$count++;
$array[$count]->{A} = "efgh";
$array[$count]->{B} = 111;
$array[$count]->{C} = 222;
$array[$count]->{D} = 333;
如何使用push?
向@array添加元素答案 0 :(得分:4)
您拥有的第一个结构是hash reference
,而不是array
。您无法通过Hash
向push
添加值。 push
只会在array
上运行。如果您希望为hash reference
添加值,则需要使用->
表示法或取消引用。
$hash->{ 'key' } = $val; // ->
%{ $hash }{ 'key' } = $val; //dereferencing
如果array reference
内有hash reference
,您可以按照与上述相同的方式访问它。
$hash->{ 'array key' }->[$index] = $val;
@{ $hash->{ 'array key' }}[$index] = $val;
至于创建数组,您使用(
和)
,如此
my @array = ( "One", "Two", "Three" );
另一种选择是使用qw()
快捷键,如此
my @array = qw(one two three);
此外,您可以使用[
和]
my $array_ref = [ 1, 2, 3 ];
最后,要将值推送到使用push
push(@array, $value);
尽管如此,推送作为列表上下文功能可以写成没有。
push @array, $value;