The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/perl -w
use IO::File;

while (<>)
 {
  last if /^static int perl_init()/;
  print;
 }

my @head = ($_);

while (<>)
 {
  push(@head,$_);
  last if /^\t+dTHR/;
 }


my $name  = 0;
my $count = 0;
new_chunk();

sub new_chunk
{
 print "}\n\n" if $count;
 ++$name;
 print "static void Chunk_$name (void)\n{\n";
 push(@head,"\tChunk_$name();\n");
 $count = 0;
}

while (<>)
 {
  last if /^\s+return/;
  print;
  $count++;
  if (/^\t+\{/)
   {
    while (<>)
     {
      print;
      $count++;
      last if /^\t+\}/;
     }
   }
  new_chunk() if $count > 150;
 }

print "}\n\n" if $count;

while (@head)
 {
  print shift(@head);
 }
print;

while (<>)
 {
  print;
 }

warn "$. lines\n";