The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/perl

@files = @ARGV;

$^I = ".bak";

# Converts Text->new($parent) into $parent->Text()
# Converts -variable => $fred into -variable => \$fred

foreach $file (@files)
 {
  print STDERR "$file:\n";
  @ARGV = ($file);
  while (<>)
   {
    if (/[A-Z][a-z]+->new/)
     {
      s/([A-Z][A-Z0-9_a-z]+)->new\(\s*([^),]+)(,\s*)?/$2->$1(/;
      print STDERR;
     }
    if (/\b[A-Z]*VARIABLE\s*=>\s*\$/)
     {
      s/\b([A-Z]*VARIABLE\s*=>\s*)(\$)/$1\\$2/g;
      print STDERR;
     }
    if (/'-[a-z]*variable'\s*=>\s*\$/)
     {
      s/('-[a-z]*variable'\s*=>\s*)(\$)/$1\\$2/g;
      print STDERR;
     }
    print;
   }
 }