open BIGFILE, $filename or die "Could not open $filename:$!\n"; while () { unless (defined($smallfile)) { $smallfile=$_; chomp $smallfile; open(SMALLFILE,">$smallfile") or die "Could not open smallfile $smallfile (referenced in $.): $!\n"; } elsif (/^\$$/) { close(SMALLFILE) || die "Could not close $smallfile:$!\n"; $smallfile=undef; } else { print SMALLFILE; } } close BIGFILE;