use strict; use warnings; use File::Copy; use HTML::Tree; use Astro::Time qw(); my $nowJD = Astro::Time::mjd2jd(Astro::Time::now2mjd()); my $root = HTML::TreeBuilder->new_from_url( 'http://ogle.astrouw.edu.pl/ogle4/ews/ews.html'); my @elements = $root->guts(); my @tables = $root->find('table'); my @rows = $tables[-1]->find('tr'); my @events; for my $row (@rows) { my @cells = $row->find('td'); my $flag = shift @cells; my ( $event, $field, $starNo, $ra, $dec, $tmaxHJD, $tmaxUT, $tau, $Umin, $Amax, $Dmag, $fbl, $ibl, $i0 ) = map {$_->as_text()} @cells; next if !$event || !$flag->find('img') || $Amax < 20; my $delta = abs($nowJD - $tmaxHJD); my $minMag = $i0 - $Dmag; next if $tau > 300 || $delta > $tau || $minMag > 16; $delta ||= 0.0001; $Umin ||= 0.0001; my $tRoot = $delta / $tau; my $uNow = sqrt($Umin * $Umin + $tRoot * $tRoot); my $aNow = ($uNow * $uNow + 2) / ($uNow * sqrt($uNow * $uNow + 4)); my $magNow = $i0 - 5 * log($aNow) / log(100); next if $magNow > 17; $magNow = sprintf "%.4f", $magNow; push @events, [$event, $tmaxUT, $tRoot, $tau, $ra, $dec, $Dmag, $magNow, $i0]; } for my $eventData (sort {$a->[2] <=> $b->[2]} @events) { my ($event, $tmaxUT, $tRoot, $tau, $ra, $dec, $Dmag, $magNow, $i0) = map {s/^\s+|\s+$//g; $_} @$eventData; my $minMag = sprintf "%.3f", $i0 - $Dmag; print <