in reply to @ARGV: two different types of arguments

You shouldn't prompt the user for value he/she doesn't need to enter.

You probably meant to do something like this:

my $beacon = shift @ARGV; my $begin_time = shift @ARGV; my $end_time = shift @ARGV; my @DAYS = @ARGV;

This will remove the first three elements of @ARGV and assigns the rest to @DAYS.

See shift for details.