in reply to Splitting long file

One way of doing it would be using a simple state machine. Here's an untested piece of code:
#!/usr/bin/perl use strict; use warnings; my $STATE = "FILE"; my $name; my $fh; while (<>) { if ($STATE eq "DATA") { if ($_ eq "\$\n") { close $fh or die "close '$name': $!\n"; $STATE = "NAME"; next; } print $fh $_; next; } elsif ($STATE eq "FILE") { chomp; $name = $_; open $fh => ">", $name or die "open '$name': $!\n"; $STATE = "DATA"; next; } else { die "Unknown state '$STATE'.\n"; } } if ($STATE eq "DATA") { close $fh or die "close '$name': $!\n"; } __END__
Abigail