3

私はこの例に従っていますPerlスクリプトでYAML構成ファイルのデータを使用する簡単な例

vihtorr@w00w /var/www $ cat test.yaml

IPs: [500, 600, 200, 100]

vihtorr@w00w /var/www $ cat yam2.pl

 use strict;
 use warnings;
 use YAML::XS qw(LoadFile); 

 my $settings = LoadFile('test.yaml');
 print "The IPs are ", $settings->{IPs};

そして、配列内で反復する人を知りたいですか?

取得したコードを実行すると

perl yam2.pl 
The IPs are ARRAY(0x166e5e0)

初心者を助けてくれてありがとう

4

2 に答える 2

9
$settings->{IPs}

配列への参照を保持します。配列は以下を使用して逆参照されます

@{ $ref }       # The whole thing
${ $ref }[$i]   # One element
$ref->[$i]      # One element
@{ $ref }[@i]   # Array slice

を使用して配列にアクセスできます

@{ $settings->{IPs} }

あなたは得る:

print "The IPs are ", join(', ', @{ $settings->{IPs} }), "\n";

あなたも興味があるかもしれません

for my $ip (@{ $settings->{IPs} }) {
   ... do something with $ip ...
}

参考文献:

于 2012-07-18T19:48:13.500 に答える
1

ARRAY(0x166e5e0) 出力は、$settings->{IPs} が配列参照であることを示しています。反復するには、逆参照する必要があります。

for my $ip (@{$settings->{IPs}}) {
   print $ip . "\n";
}

印刷するだけなら、join() を使用できます。

print join("\n", @{$settings->{IPs}});
于 2012-07-18T19:47:24.203 に答える