CSV ファイルの列 9 ~ 13 にデータ (IP アドレス) があります。他の列に値がない場合、デフォルトでは、列 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 のスクリプトを作成するのは初めてですが、職場の問題を解決するために Perl に常に惹かれています。提案?
これは出力です、ところで:
ComponentAliases=['ComputerSystem:10.1.0.225','ComputerSystem:10.200.252.77','ComputerSystem:10.100.252.77'];