いくつかのこと:
Chomp は文字列を変更し、chompedの文字数を返します。その入力行の後、になるchomp $master_testplan_conf
可能性が最も高いため、ヌル文字列1
と比較しています。1
次の方法で実行できます。
chomp ( $master_testplan_conf = <> );
1行ですべてを実行したい場合。
これにより、入力が読み取られ、ワンステップでチョップが実行されます。また、<>
オペレータはコマンド ラインからファイルを取得し、コマンド ライン<>
の最初のファイルの最初の行になります。それをしたくない場合は、次を使用します<STDIN>
。
chomp ( $master_testplan_conf = <STDIN> );
ユーザーの入力をサニタイズしたい場合があります。少なくとも先頭と末尾の空白を削除します。
$master_testplan_conf =~ s/^\s*(.*?)\s*$/$1/; # Oh, I wish there was a "trim" command!
このようにして、ユーザーが誤ってスペースバーを数回押しても、スペースを取得しません。ファイルの存在もテストすることもできます。
if ( not -f $master_testplan_conf ) {
die qq(File "$master_testplan_conf" not found);
}
次の使用もお勧めします。
if ( not defined $master_testplan_conf or $master_testplan_conf eq "" ) {
あなたのif
声明のために。これは、実際に定義されているかどうかをテスト$master_test_conf
し、単なる null 文字列ではありません。現時点では、ユーザーは少なくとも\n
. $master_testplan_conf
散歩が null になることはありません。
ただし、 Getopt::Longを使用する場合は問題になる場合があります。