|Problems? Is your data what you think it is?
It is NP-complete, so there's no way a super-efficient general solution is going to emerge here. However, the evaluation of any particular ordering doesn't require evaluating all possible groupings of that ordering. You can merely start adding stuff until an overflow occurs, switching to the next bag as necessary. The "best" solution out of the possibilities evaluated is the one that uses the least containers.
Perl is buff enough to spin through several million possibilities in realistic time, unless you're using a version of Perl for Palm Pilot. I would submit that as long as a Perl Golf program runs in finite time (even extremely, exponentially long), the point is to make a minimally sized program that produces the correct solution.