>>>>> "UG" == Uri Guttman <u...@stemsystems.com> writes:
>>>>> "CJ" == Chris Jack <chris_j...@msn.com> writes: CJ> 3) Write a Perl function that takes two references to arrays and CJ> returns the intersect of them. If an entry appears n times in CJ> array 1 and m times in array 2, the output should list that entry CJ> min(n,m) times. Bonus mark for one line solutions. UG> this appears to work fine and is a true one line sub. UG> use strict ; UG> use warnings ; UG> sub intersect { UG> return keys %{{ map {$_, 1} grep(exists ${{map { $_ => 1 } @{$_[0]}}}{$_}, @{$_[1]}) }} ; UG> } and i squeezed out the white space and dropped the superfluous exists to get this version: return keys%{{map{$_,1}grep(${{map{$_=>1...@{$_[0]}}}{$_},@{$_[1]})}} ; it may not win in golf but it is a single expression/statement with no declared variables so that should earn some points. i wouldn't call multistatement code a true one liner. :) uri -- Uri Guttman ------ u...@stemsystems.com -------- http://www.sysarch.com -- ----- Perl Code Review , Architecture, Development, Training, Support ------ --------- Free Perl Training --- http://perlhunter.com/college.html --------- --------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com ---------