ファイルを/etc
で使用してファイル内のユーザーを検索するように求める作業をしています。文字列比較とif文
私はこれを行うことができましたが、特定のユーザーが見つからない場合は、私が使用した印刷コマンドで返信しません。
は、ここに私のコードです:私はne
ため!=
を交換しようとしている
#!/usr/bin/perl
$file = '/etc/passwd.bak'
open (FILE, $file) or die "Error in reading file. Program will close";
while (<FILE>) {
chomp;
@field = split (':', $_);
if ($ARGV[0] eq $field[0]) {
print "User ID: $field[2]\n" ;
print "Home Directory: $field[5]\n";
}
elsif (@ARGV[0] ~= $field[0] {
print "User: $ARGV[0] does not exist.\n"
}
elsif ((@ARGV > 1 || @ARGV == 0)) {
print "Please enter one argument only.\n";
exit 0;
}
}
が、私はそれが言うことを行うとき、私はそれがあると知っている場合でも、すべての引数が見つかりません。
私は自分の本を調べて、運がないとオンラインで調べようとしました。
'' ARGV [0] 'スカラー、配列ではありませんので、@ ARGV [0]'動作しません。最初のチェックで使用したように、おそらく '$ ARGV [0]'を意味します。また、 '$ field [0]'の後ろには閉じた括弧がありません。スクリプトの先頭に 'use warnings;'を追加することを検討してください。 –
私はそれを試してくれます、ありがとうございます – user4839691
while(){...} 'はファイル内の各行に対してブロックを一度実行しますか? –
Borodin