in reply to string to more compact format

Wouldn't your method mean that the substring would only be found from the first 4-char border the match crossed?

print "Good ",qw(night morning afternoon evening)[(localtime)[2]/6]," fellow monks."