#!/usr/bin/env perl use v5.30.0; use strict; use warnings; use Mojo::UserAgent; use Mojo::DOM; use Const::Fast; const my $ALARM_NO_ERROR => q(Alarm defunction.); my $ua = Mojo::UserAgent->new; while (1) { say "Searching data"; eval { my $result = $ua->get(q(https://www.coingecko.com/en))->result->body; my $dom = Mojo::DOM->new($result); my $bitcoin = $dom->at(q(.coin-table))->find(q(tr))->[1]; say $bitcoin->all_text =~ s/(?:\s|\r|\n)+/ /gr; local $SIG{ALRM} = sub { die $ALARM_NO_ERROR; }; alarm 60; my $line = ; alarm 0; }; if ($@) { STDERR->say(qq($@)) unless $@ =~ /$ALARM_NO_ERROR/; } }