Hello Perl monks, I have an issue w.r.t to searching for an entry in a file... I haver text file of the format:
C:\EITV10CM\base\repair\Companion_Repair\File2File\F2F.COM ... is OK. C:\EITV10CM\base\repair\Companion_Repair\File2SelfExt\F2SEXT.CMP ... i +s OK. C:\EITV10CM\base\repair\Companion_Repair\File2SelfExt\F2SEXT.COM ... F +ound the CMPAN/File2SelfExt virus !!! The virus has been removed from the file. Checking for another virus in the file ... C:\EITV10CM\base\repair\Companion_Repair\File2SelfExt\F2SEXT.COM ... i +s OK
Below is the piece of code which was written by me...
#!/usr/bin/perl use strict; use warnings; #Program to read the command line report file; and extract the virus d +etection name for a file. my $cmdrep = "d:/eitv10cm_cln.rep"; my $fname = "D:\\EITV10CM\\base\\repair\\Companion_Repair\\File2SelfEx +t\\F2SEXT.COM"; my ($found,$virusname,$flag,$i); (@dirtemp) = split /:/,$fname shift @dirtemp; foreach $itemp ( @dirtemp ) { $filepath .= $itemp; } open FH, "$cmdrep" or die "Cannot open $cmdrep. \n"; while (<FH>) { chomp; next if $_ !~ /^\Q$filepath\E/i; chomp($_); /\s\.{3}\s(.*)/; $found = $1; if ($found eq "is OK.") { $virusname = "OK"; print "The virus detection name is $virusname\n"; last; } if ($found =~ /^Found: (.*?) NOT a virus[.]/) { $virusname = $1; print "The virus detection name is $virusname\n"; last; } elsif ($found =~ /^Found the (.*?) (virus|trojan) !!!/) { $virusname = $1; print "The virus detection names is $virusname\n"; last; } elsif ($found =~ /^Found potentially unwanted program (.*?)[.] +/) { $virusname = $1; print "PuPs $virusname \n"; last; } elsif ($found =~ /Found (virus or variant|application) (.*?)( +!!!|[.])/) { $virusname = $2; print "Virus or variant $virusname \n \n"; $flag =1; last; } } close(FH); }
Since the drive letters in the variable and text file are the only ones which vary, i have tried to remove the drive letter from $fname; this doesnt match in the text file at all even though the remaining of the string is the same. Could u please help me with this...dont know how to go about doing it.

In reply to Problem with searching for an entry in a file by nisha

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.