First of all, you don't have to open DATA to read from it. Also, without looking it up or testing it, I'm not too sure what these two lines, in this combination, are supposed to do:
open my $in, "<", $infile;
but it looks wrong to me. Would you care to elaborate as to what your intensions were here?
The next thing that strikes me as odd is the ins split /,\s*/ for <DATA>; line: where is ins defined? Is it imported from somewhere? Did you forget to include the relevant use ...; statement or the actual subroutine itself? Because as is, your code won't even run without an error message regarding this line.
Not to mention the fact that your code has use strict; and then uses an undeclared variable:
syntax error at x.pl line 15, near "ins split"
Global symbol "%group" requires explicit package name at x.pl line 16.
Execution of x.pl aborted due to compilation errors.