open BIGFILE, $filename or die; while () { if (/(.+)$/ ... /^\$$/ && next) { if (defined $1) { open SMALLFILE, ">$1" or die; next } print SMALLFILE; next; } warn "Untested code is bad!"; } close BIGFILE;