MLB has a cap! It does! ARGH!
From this AP article:
While the NFL and NBA have salary caps, baseball does not. The current labor contract expires after the 2006 season.
Baseball has a cap as much as either of those two sports do. In baseball, there’s a hard number with severe and escalating penalties if a team exceeds it. Teams are free to exceed that number if they’re willing to eat the penalties… which is exactly as it is in the NBA and the NFL, though in each league the ways teams work it, and the penalties that they pay, differ.
I don’t understand why baseball has this widespread perception. The Yankees are the only team that violates the cap, and they’re paying a huge price to do so that gets higher every year.