http://qs321.pair.com?node_id=503831


in reply to cross combinations

Just a remark: It has been discussed on PM in the past that the glob function will do most of the work in forming a cartesian product (I don't remember exactly where, though...) So, for example,
@a=map {split //} glob "{1,2}{3,4}"; while(@a){$x=shift @a;$y=shift @a;print "{$x,$y} "};
and you can clearly write functions like "cross" by formatting the output to taste.
(Not that this is more efficient than other solutions presented...probably isn't.)
chas