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 行使用“strict refs”时,不能使用字符串 ("dbi:mysql:dbname=investometrica") 作为 ARRAY 引用。

我究竟做错了什么?

4

1 回答 1

4

的项目@$test_case_list是哈希引用,其键是labelexpected。两个键的值都是标量(不是数组引用)。因此,您不能和/或不应将它们视为数组引用。但这就是你@{...}在它们上使用时所做的事情(例如 in @{ $test_case_item->{label} })。由于它们已经是具有您想要的值的标量,因此您应该$test_case_item->{label}改为使用它们。

于 2013-07-17T04:22:51.063 回答