http://qs321.pair.com?node_id=11117047

vskatusa has asked for the wisdom of the Perl Monks concerning the following question:

Here is my code
use LWP::UserAgent; use feature 'say'; my $todaysQuoteStr = ' data-reactid="49"><span class="Trsdu(0.3s) Fw(b +) Fz(36px) Mb(-4px) D(ib)" data-reactid="50">'; $todaysQuoteStr =~ quotemeta($todaysQuoteStr); ## I believe this escap +es all characters that need to be escaped my $url = 'https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch' +; my $ua = LWP::UserAgent->new(); my $req = HTTP::Request->new(GET => $url); $ua->agent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. +36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'); my $response = $ua->request($req); #die $response->code if ! $response->is_success; $string = $response->decoded_content; say "\t\t\t=>searching for todays quote pattern [$todaysQuoteStr]"; + if ($string =~ m/$todaysQuoteStr/) { my $quoteStr = substr $string, $position, 20; my @quotes = split(/<\/span>/,$quoteStr); $price = $quotes[0]; say "\t\t\t[price = $price]"; } else { say "\t\t\t pattern not found"; }
What is interesting is that when I view the source of html in the browser and search for the pattern I do get a match but programmatically it is not working. Obviously I am doing something wrong...but unable to troubleshoot. Any help would be much appreciated.