perl检查文件内容并匹配用户名

Raj*_*eev 1 perl

我是perl编程的新手.我有一个场景,在文件中输入用户名,比方说info.log.所以,现在我想检查这个用户名是否存在于文件内容中

 $user = $ENV{USER};
 open (READ_USER_INFO_LOG, "info.log") || die("-E- Unable to open \"info.log\n");
          @content = <READ_USER_INFO_LOG>;
          close READ_USER_INFO_LOG;
          foreach $line(@content)
          {
             if($line has $user)
             {
                  print "Usenrmae found";
                   break;
             }
           }
Run Code Online (Sandbox Code Playgroud)

小智 7

好的,一些事情:

  1. 永远,永远,永远 use strict;use warnings;.每一次都是.
  2. Bareword文件句柄很糟糕.使用三个参数打开:
    open(my $read_user_info_log,"<","info.log") or die "-E- Unable to open \"info.log\"\n";
  3. $line has $user没有任何意义.相反,您可以通过正则表达式检查每一行: if($line=~/$user/){...}
  4. Perl的当量breaklast.
  5. 您可能还希望chomp文件的行删除行字符的尾端:
    chomp(my @content=<$read_user_info_log>);

老实说,我建议阅读(新发布的)第六版Learning Perl.