in reply to if && condition not working

Start by not hiding/ignoring warnings
Scalar value @start_date_array[0] better written as $start_date_array[ +0] at a.pl line 12. Scalar value @today_date_array[0] better written as $today_date_array[ +0] at a.pl line 12. Scalar value @start_date_array[1] better written as $start_date_array[ +1] at a.pl line 12. Scalar value @today_date_array[1] better written as $today_date_array[ +1] at a.pl line 12. Scalar value @start_date_array[2] better written as $start_date_array[ +2] at a.pl line 12. Scalar value @today_date_array[2] better written as $today_date_array[ +2] at a.pl line 12. Scalar value @end_date_array[0] better written as $end_date_array[0] a +t a.pl line 14. Scalar value @today_date_array[0] better written as $today_date_array[ +0] at a.pl line 14. Scalar value @end_date_array[1] better written as $end_date_array[1] a +t a.pl line 14. Scalar value @today_date_array[1] better written as $today_date_array[ +1] at a.pl line 14. Scalar value @end_date_array[2] better written as $end_date_array[2] a +t a.pl line 14. Scalar value @today_date_array[2] better written as $today_date_array[ +2] at a.pl line 14.

Mind you, that warning doesn't indicate a real problem here (it points out a bad style/habit that can have an effect in uncommon circumstances), but who knows what other warnings are being issued. Add use warnings; if it's not already there.