perl - 如何从另一个 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"
}
}
解决方案
真的不清楚你想在这里做什么。但是如果你想$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";
}
推荐阅读
- python - 更改堆叠数据框熊猫中的行顺序
- c++ - 在 Xcode 10 中找不到 -lstdc++.6 的库
- c# - 选择 Tag Helper 混淆
- decoder - 在维特比前向阶段计算分支度量
- matlab - 如何在 Matlab 中显示没有科学计数法的长数字?
- javascript - React - Checkbox select all
- c++ - 注册可加载、注册和卸载的C++服务实现库的最佳方式
- angular - 无法绑定到“formControl”,因为它不是“select”的已知属性
- .net - 由于固定对象,.NET LOH 上的碎片
- angular - 如何使某些输入字段仅在选择相应的单选按钮时才需要