use LWP::UserAgent; use feature 'say'; my $todaysQuoteStr = ' data-reactid="49">'; $todaysQuoteStr =~ quotemeta($todaysQuoteStr); ## I believe this escapes 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"; }