in reply to updating file

Homework Hint: By the look of your array of shifts...

my @shifts = qw( 5:00am 5:30am 6:00am 6:30am 7:00am 7:30am 8:00am 8:30am 9:00am );

it seems quite easy to advance an hour by advancing the index of @shifts by two. Don't forget the around-the-corner logic if necessary.

Hanlon's Razor - "Never attribute to malice that which can be adequately explained by stupidity"