首页 > 解决方案 > 如何从另一个 if 条件中的一个 if 条件中获取变量的值?

问题描述

在这里,我的代码将运行 2 次迭代。对于第一次迭代,它将直接进入第二次 if 条件。经过一些操作后,它会将 $vg_name 的值打印为“n_vg_f”。到这里代码工作正常。现在,对于第二次迭代,首先控制转到上面的 if 条件。在调用函数 _create() 时,我需要将参数 -vg_name 作为我们在第一次迭代中从下面的 if 条件中获得的 $vg_name 的值传递。请帮我找到一种方法来做到这一点。

for(my $x=1;$x<=2;$x++) {
    if($x >= 2){
        $linux_host_obj->_create(-vg_name => $vg_name);
    }
    if($x >= 1){
        print("VG Name is:", $vg_name);   #Here I get $vg_name value as "n_vg_f"
    }
}

标签: perl

解决方案


真的不清楚你想在这里做什么。但是如果你想$vg_name在循环的迭代之间保留变量的值,那么你需要在循环之外声明变量。

my $vg_name;

for my $i (1 .. 2) { # this loop style is easier to follow
  if ($i == 2) {
    # do stuff with $vg_name
  }
  if ($i == 1) {
    $vg_name = 'something';
  }
  print "Iteration: $i, vg_name: $vg_name\n";
}

推荐阅读