如何从另一个if条件中的一个if条件中获取变量的值?

时间:2019-10-19 19:39:03

标签: perl

在这里,我的代码将运行2次迭代。对于第一个迭代,如果有条件,它将直接转到第二个。经过一些操作后,它将把$ vg_name的值打印为“ n_vg_f”。直到这里代码可以正常工作。现在,对于第二次迭代,首先将控制移至if条件之上。在那里,在调用函数_create()时,我需要将参数-vg_name作为$ vg_name的值传递,该值是我们从以下if条件的第一次迭代中获得的。请帮助我找到一种方法。

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"
    }
}

1 个答案:

答案 0 :(得分:0)

目前还不清楚您要在这里做什么。但是,如果要在循环的迭代之间保留$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";
}