1

私は Perl の世界に不慣れで、ここであなたの助けが得られることを願っています。

次の配列があるとしましょう:

trap:  $VAR1 = [
      {
        'oid' => 'enterprises.12356.101.2.0.504',
        'type' => 'IPS Anomaly'
      }
    ];

さらにインデックスを追加して、次の結果が得られるようにします。

trap:  $VAR1 = [
      {
        'oid' => 'enterprises.12356.101.2.0.504',
        'type' => 'IPS Anomaly',
        'attackid' => 'ID',
        'detail' => 'Some details',
        'url' => 'http://....'
      }
    ];

したがって、要素は配列の最後に追加されません-プッシュまたはシフト解除によって行われること-私はスプライシングのように試しましたが、機能しません。

4

3 に答える 3

3

以下のようなことができます.1つのハッシュが他のハッシュのキーと値を上書きすることを気にしないと仮定すると、これはハッシュを含む配列参照であるため、ハッシュスライスを使用して1つのハッシュを別のハッシュに追加することができます.

use strict;
use Data::Dumper;
use warnings;

my $arr_ref = [ { 'oid' => 'enterprises.12356.101.2.0.504', 'type' => 'IPS Anomaly' } ];
my %test = ('attackid' => 'ID', 'detail' => 'Some details') ;

@{$arr_ref->[0]}{ keys %test } = values %test;
print Dumper($arr_ref);

出力:

$VAR1 = [
          {
            'detail' => 'Some details',
            'attackid' => 'ID',
            'oid' => 'enterprises.12356.101.2.0.504',
            'type' => 'IPS Anomaly'
          }
        ];
于 2013-07-03T09:44:09.987 に答える
1

これは、単一のハッシュ参照を含む配列参照です。以下を使用してハッシュに値を追加できます。

$arrayref->[0]->{'detail'} = 'Some details';
$arrayref->[0]->{'url'} = 'http://....';

説明:

参照から配列内の要素にアクセスするには、->. たとえば$arrayref->[0]、最初の要素を提供します。この最初の要素はハッシュへの参照であるため、再び使用->してその要素にアクセスします。

于 2013-07-03T09:13:07.660 に答える