Most businesses today charge different prices from different consumers for essentially the same good or service in order to maximize their revenues. This practice, called {\em price discrimination}, is essential for the survival of certain businesses. {\em Perfect price discrimination} is when the business separates the market into individual consumers and charges each one prices that they are willing and able to pay. We present a simple market model which allows for perfect price discrimination and we give a notion of equilibrium for it. We also give a convex program, a generalization of the classic Eisenberg-Gale convex program, that captures all equilibria for this market. This program gives us surprisingly simple proofs of both welfare theorems for this market. Finally, we give a combinatorial, polynomial time algorithm for finding an equilibrium and a characterization of the set of all equilibria.