in reply to RegExp eating my $1 - FIXED!

With strict and warnings enabled, this error came up at this line: open (FH, ">$fname_$ffc.txt") or die
Global symbol "$fname_" requires explicit package name at 701529.pl line 19. Execution of 701529.pl aborted due to compilation errors.
You would need to surround $fname in braces.
"${fname}_$ffc.txt"

As was noted by another poster, check for existence of an open filehandle with exists

if (! exists $files{$ffc}) { print "Adding new handle : $ffc\n"; open $files{$ffc}, '>', "${fname}_$ffc.txt" or die $!; }
Update: changed the open statement to a hash item (as noted by ikegami)