3

私は持っている

 my $test_case_list  = [
     +{     
         label => &config->current->{'DBI'}[0],
         expected => 'dbi:mysql:dbname=investometrica',
      },     
      +{     
          label => &config->current->{'maintenance_file_path'}[0],
          expected => '/var/tmp/',
      },     
  ];         


  for my $test_case_item (@$test_case_list) {
  my $label = @{ $test_case_item->{label} };
  my $expected = @{ $test_case_item->{expected} };
  is ( $label, $expected, "Match");                                                                                                                                                                                 
  } 

これは私にひどい警告を与えます:

config.t の 25 行目で「厳密な参照」が使用されている間は、文字列 (「dbi:mysql:dbname=investometrica」) を ARRAY 参照として使用できません。

私は何を間違っていますか?

4

1 に答える 1

4

の項目@$test_case_listはハッシュ参照で、そのキーはlabelexpectedです。両方のキーの値はスカラーです (配列参照ではありません)。したがって、それらを配列参照として扱うことはできません。@{...}しかし、これは、( などで)を使用する場合に行うことです@{ $test_case_item->{label} }。それらはすでに必要な値を持つスカラーであるため、$test_case_item->{label}代わりにそのまま使用する必要があります。

于 2013-07-17T04:22:51.063 に答える