Allright, that didn't quite seem to do the trick...
Ok here is the code, however I have changed the company to one *similar* to my own, just for example purposes. I dont claim affiliation to these guys disclaimer stuff goes here.
#!/usr/bin/perl use LWP::UserAgent; use Net::SMTP; $ua = LWP::UserAgent->new; my ($req, $match, $res, $name, $url, $price, $readPath, $write +Path, $companyName, $ccemail); my $changes=""; my $searchString=""; my $searchString2=""; $email = 'wmkzin@hotmail.com'; # $tag represents a <blah> tag in html $tag = "<[^>]*>"; $readPath = "/home/autotasks/pricemonitor/"; $companyName = "LensMart"; $searchString = qr|^Price: \$([0-9]+\.[0-9]+)|; $searchString2 = qr|^Price: $tag\$([0-9]+\.[0-9]+)|; open( CONTACTS, "<$readPath$companyName" ) ; # list being read open( CONTACTS2, ">$readPath.$companyName"); # new list being +generated while( <CONTACTS> ) { chomp($_); ($name, $url, $price) = split(/###/, $_); $savename = $name; $name =~ s/\(/\\(/g; $name =~ s/\)/\\)/g; $req = HTTP::Request->new(GET => $url); $res = $ua->request($req); $_ = $res->content; # the "if" statement below looks for the product name +and price if( /$searchString/ ) { $match = $1; # check if price is the same if( $1 == $price ) {} else { # price changed, so add to "changes" l +ist $changes .= "$savename($url) - changed + from \$$price to \$$1 \n\n"; } print CONTACTS2 "$savename###$url###$1\n"; } elsif ( $searchString2 ne "" ) { if( /$searchString2/ ) { $match = $1; # check if price is the same if( $1 ne $price ) { # price changed, so add to "ch +anges" list $changes .= "$savename($url) - + changed from \$$price to \$$1 \n\n"; } print CONTACTS2 "$savename###$url###$1 +\n"; }else { print CONTACTS2 "$savename###$url###$p +rice\n"; $changes .= "No match on $savename($ur +l)\n\n"; } }else { print CONTACTS2 "$savename###$url###$price\n"; $changes .= "No match on $savename($url)\n\n"; } } close( CONTACTS ); close( CONTACTS2); # copy new list onto old one to ensure things are the same nex +t time system( "cp $readPath.$companyName $readPath$companyName" ); # if prices changed, email if( $changes ne "" ) { system ("date"); print "$companyName:\n$changes"; $smtp = Net::SMTP->new('localhost'); # connect to an S +MTP server $smtp->mail( $email ); if ($ccemail ne "") { $smtp->to($email, $ccemail); }else { $smtp->to($email); } $smtp->data(); # Send the header. $smtp->datasend("To: $email \n"); $smtp->datasend("From: $email\n"); $smtp->datasend("Subject: $companyName Price Changes\n +"); $smtp->datasend("\n"); # Send the body. # $smtp->datasend("$changes\n"); $smtp->dataend(); $smtp->quit; }else { system("date"); print "$companyName: No change\n"; } # End Of File
I apologise ahead of time for lack of good meaningful comments and have to give credit to various sources from around the 'net for little tips here and there... like the qr thing. So the 'net owns this not me. hehe
The file that it is reading from would be named "LensMart" or whatever you put in for company name. An example line would be...
Acuvue###http://www.lensmart.com/scripts/ProductLens.asp/Pro dId=1/cur=1/cam=LM602###15.95
You could put many lines in that file, but I dont really want to go through that person's site and pull up all of their individual products. Dont forget to change the readpath to wherever you are going to put the file. This works best with linux because I have prepended the second file with . to hide it, as it is really just a temp file. I dont know what windows will do in this situation.
Ok thats enough babbling, I shall now leave it to those who are more wise.

In reply to Re^2: Perl & Regex by Kzin
in thread Perl & Regex by Kzin

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.