In this paper, we study an inventory routing problem in which goods are perishable. In this problem, a single supplier is responsible for delivering a perishable product to a set of customers during a given finite planning horizon. The product is assumed to have a fixed shelf-life during which it is usable and after which it must be discarded. We introduce four mathematical formulations for the problem, two with a vehicle index and two without a vehicle index, and propose branch-and-cut algorithms to solve them. In addition, we propose a hybrid heuristic based on the combination of an iterated local search metaheuristic and two mathematical programming components. We present the results of extensive computational experiments using instances from the literature as well as new larger instances. The results show the different advantages of the introduced formulations and show that the hybrid method is able to provide high-quality solutions in relatively short running times for small- and medium-sized instances while good quality solutions are found within reasonable running times for larger instances. We also adapted the proposed hybrid heuristic to solve the basic variant of the inventory routing problem. The results using standard instances show that our heuristic is also able to find good quality solutions for this problem when compared to the state-of-the-art methods from the literature.