| [reply] [d/l] |
Indeed, the OP's function does that, but OP attempts to accept them as multiple arrays at line 23: my (@overall, @electronics, @safety) = breakouts(@products);
This mixing of metaphors needs to be fixed one way or the other, and I suggest that, since OP wants to export globals, the right way to fix it is to directly load the globals instead of creating lexicals to shadow them. I am surprised that perl does not warn about this; OP does use warnings;.
This also leads to a third option, which is the C way of passing references to breakouts and having it populate the arrays passed as arguments, but I think the oft-seen quip "Keep It Simple, Stupid" applies here: breakouts is not some general function, but sorts specifically this data into these bins. A better architecture would involve replacing the whole thing with an SQL database (start with DBI and DBD::SQLite and move up to DBD::Pg when needed) but OP seems to want these arrays for some reason.
| [reply] [d/l] [select] |