DateTime::Event::Sunrise
Why do I get here the message “Can’t locate object method “sunrise_datetime” via package “DateTime::Set””
#!/usr/bin/env perl
use warnings;
use 5.012;
use DateTime;
use DateTime::Event::Sunrise;
my $dt = DateTime->new( year => 2010, month => 12, day => 22, time_zone => 'CET' );
my $longitude = 16;
my $latitude = 48;
my $sunrise = DateTime::Event::Sunrise ->sunrise (
longitude => $longitude,
latitude => $latitude,
altitude => '-0.833',
iteration => '1'
);
my $sunset = DateTime::Event::Sunrise ->sunset (
longitude => $longitude,
latitude => $latitude,
altitude => '-0.833',
iteration => '1'
);
my $dt1 = $sunrise->sunrise_datetime( $dt );
say "Sunrise is:", $dt1->datetime;
my $dt2 = $sunrise->sunset_datetime( $dt );
say "Sunset is:", $dt2->datetime;
# Can't locate object method "sunrise_datetime" via package "DateTime::Set" at ./so.pl line 24.
The documentation seems wrong on this one. The source has it better:
The important part is that the object you invoke it on must be of class
DateTime::Event::Sunrise. Your$sunriseobject is of classDateTime::Set.You could get it to work by either creating
$sunriseas aDateTime::Event::Sunrise:Or by using the iteration facilities provided by
DateTime::Setinstead: