push an array of references to any number of hashes [ perl ]
suppose i have an array:
@array = {
'A'    =>    "",
'B'    =>    0,
'C'    =>    0,
'D'    =>    0,
};
i can add an element by:
$count = 0;
$array[$count]->{A} = 开发者_StackOverflow中文版"abcd";
$array[$count]->{B} = 789;
$array[$count]->{C} = 456;
$array[$count]->{D} = 123;
and another element,
$count++;
$array[$count]->{A} = "efgh";
$array[$count]->{B} = 111;
$array[$count]->{C} = 222;
$array[$count]->{D} = 333;
how can i add elements to @array using push?
That first structure you have is a hash reference, not an array. You cannot add values to a Hash via push. push will only operate on an array. If you wish to add a value to a hash reference you will need to either use -> notation or dereference.
$hash->{ 'key' } = $val;  // ->
%{ $hash }{ 'key' } = $val;  //dereferencing
If you have an array reference inside of a hash reference you can access it in the same manner as above.
$hash->{ 'array key' }->[$index] = $val;
@{ $hash->{ 'array key' }}[$index] = $val;
As for creating an array you use ( and ) like so
my @array = ( "One", "Two", "Three" );
Another option is to use the qw() shortcut like so
my @array = qw(one two three);
Additionally you can create an array by reference using [ and ]
my $array_ref = [ 1, 2, 3 ];
Finally to push a value to an array you use push
push(@array, $value);
Though, push being a list context function can be written sans parens.
push @array, $value;
 加载中,请稍侯......
      
精彩评论