我在 CSV 文件中有数据(IP 地址),该文件将是第 9-13 列。如果其他列中没有值,则默认情况下它应该只打印第 9 列中的内容。有一个输出文件将打印一组值和第 9 列的值(如果有值,则通过 13存在)与静态值连接以创建别名值。我的问题是,你将如何有效地做到这一点?我有这个有效的代码:
my $alias0= "ComponentAliases=['ComputerSystem:$columns[9]'];\n";
my $alias1= "ComponentAliases=['ComputerSystem:$columns[9]','ComputerSystem:$columns[10]'];\n";
my $alias2= "ComponentAliases=['ComputerSystem:$columns[9]','ComputerSystem:$columns[10]','ComputerSystem:$columns[11]'];\n";
print BAROC "ComputerSystem;\n";
if(($columns[11] != '')&&($columns[10] != '')) { print BAROC $alias2 }
elsif(($columns[11] == '')&&($columns[10] != '')) { print BAROC $alias1 }
elsif(($columns[11] == '')&&($columns[10] == '')) { print BAROC $alias0 }
这可以做我想做的事情,但是CSV文件有可能在第9-13或9-11列等中有值。很容易我认为静态编写它会很好,但我想做它有效地理解并始终应用最佳实践。我是编写 Perl 脚本的新手,但一直被它吸引来解决工作中的问题。建议?
这是输出,顺便说一句:
ComponentAliases=['ComputerSystem:10.1.0.225','ComputerSystem:10.200.252.77','ComputerSystem:10.100.252.77'];