Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Distribute the leftovers

by GotToBTru (Prior)
on Mar 20, 2015 at 16:46 UTC ( #1120767=CUFP: print w/replies, xml ) Need Help??

We get the quantity of a product shipped from the database, and a list of individual carton labels from an external file. The actual contents of each carton are unknown. Working assumption would be qty per carton = shipped qty / carton count. Easy enough. But what if the division doesn't come out clean?

use POSIX qw/ceil/; ... $sq = $shipped_quantity; $cc = $carton_count; foreach $label(@label_list) { if ($cc == 0) { print "Qty per carton math error"; next OUTER; } $per_container = ceil($sq/$cc); $sq -= $per_container; $cc -= 1; ... }

If shipped quantity is 8 and carton count is 5, first 3 cartons will have 2 each, last 2 have 1.

Yeah, almost too simple to mention. But this came up today, and I remember little code bits like this better when I write them down somewhere.

Update: s/box/carton/

Dum Spiro Spero

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: CUFP [id://1120767]
Front-paged by Arunbear
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2020-11-25 00:13 GMT
Find Nodes?
    Voting Booth?

    No recent polls found