Here is the CCC on purgatory:
1030 All who die in God’s grace and friendship, but still imperfectly purified, are indeed assured of their eternal salvation; but after death they undergo purification, so as to achieve the holiness necessary to enter the joy of heaven.
1031 The Church gives the name Purgatory to this final purification of the elect, which is entirely different from the punishment of the damned. The Church formulated her doctrine of faith on Purgatory especially at the Councils of Florence and Trent. the tradition of the Church, by reference to certain texts of Scripture, speaks of a cleansing fire:
As for certain lesser faults, we must believe that, before the Final Judgment, there is a purifying fire. He who is truth says that whoever utters blasphemy against the Holy Spirit will be pardoned neither in this age nor in the age to come. From this sentence we understand that certain offenses can be forgiven in this age, but certain others in the age to come.
How would suffering and pain do that? Just like how good is punishing a child by hitting the child when it does wrong rather than making the child take timeout and teach them to see why it is wrong.
In Purgatory we finally let go of our selfishness. The pain we feel is not the cruel punishment of abuse. It’s instead the pain of withdrawal, letting go of favorite bad habits and addictions that separate us from God.
Imagine how you would feel if you had to quit, all at the same time, smoking, getting drunk, oversleeping, extra-marital conjugal relationships, fattening foods, and video games. And then, while still nursing a hangover and feeling completely wiped out, having to tend to all the chores you’d neglected like cleaning out the basement, fixing the fence, weeding the yard, babysitting the colicy baby, shampooing the carpets, and going to the dentist to have your teeth drilled.
That’s what I imagine Purgatory is like. You’ll sure feel a lot better when it’s all done, but getting throught it all… ohhhhh… planetsmilies.com/smilies/scared/scared0011.gif