Perl Hash具有动态键值...获得wiered结果!请指教

时间:2014-07-09 17:24:33

标签: perl

我尝试使用可变键值来构建哈希,并且键与值相同,然后我尝试检索特定键的特定值。这是代码和我&#39我正是得到了我想要的东西。 我的问题是,当我试图将代码的代码保存在子程序中并从那里调用它时,我得到了空!有人可以说明为什么?

这是工作代码;

 my @ary = qw(apple mango orrange grape);

 my %dir;
 foreach my $list (@ary) {
    $dir{$list} = "$list";
 }

  my $file = $dir{mango};
  print("$file\n");

根据预期结果:芒果:

以下代码无效: (在主要文章中)

  my %dir;

  foreach my $list ( @show ) {
     $dir{$list} = "$list";
     # print $dir{$list} . "\n";
  }

  while ( my ($key,$value ) = each %dir ) {
     print("$key -> $value\n");
  } 

  ### I'm genuinley getting the key values as expected#####

  my $file1 = $dir{apple};
  my $file2 = $dir{mango };
  print("Required files is : $file1" . "\n" . $file2 ."\n");
什么都没得到!!!

1 个答案:

答案 0 :(得分:0)

我认为这是你的代码:

my @show = qw(apple mango orrange grape);

my %dir;

  foreach my $list ( @show ) {
     $dir{$list} = "$list";
     # print $dir{$list} . "\n";
  }

my $file1 = $dir{apple};
  my $file2 = $dir{mango};
  print("Required files is : $file1" . "\n" . $file2 ."\n");

您应该打印出一个值。你唯一没有得到任何东西的是你的@show数组是用其他东西初始化的(没有芒果,没有苹果)。