use diagnostics; use File::Slurp; use RTF::Writer; my @destinations = ('IAs','Defs','Term','Payoffs','RWs','Boilerplate2'); my $targetfolder = "contract/new2"; opendir(DIR, "$targetfolder"); my @files = readdir(DIR); closedir(DIR); my $count = 0; foreach $file (@files) { if ($file =~ /rtf/i) { my $IAs = RTF::Writer->new_to_file("contract/IAs/$file"); my $Defs = RTF::Writer->new_to_file("contract/Defs/$file"); my $Term = RTF::Writer->new_to_file("contract/Term/$file"); my $Payoffs = RTF::Writer->new_to_file("contract/Payoffs/$file"); my $RWs = RTF::Writer->new_to_file("contract/RWs/$file"); my $Boilerplate2 = RTF::Writer->new_to_file("contract/Boilerplate2/$file"); my $contract = read_file("$targetfolder/$file"); my @paragraphs = split('cf', $contract); foreach $clause (@paragraphs) { my @lines = split("\n", "$clause"); if ($lines[0] =~ /^\d$/){ my $colour = $lines[0]; my $goal = \${$destinations["$colour"]}; #PROBLEM CODE my $destinationfolder = ("contract/$goal"); foreach $line (@lines) { if ($line =~ /^\s*\w/ && $line !~ /^\d$/){ ${$goal}->paragraph ( "$line", ); } } } } } $count++; }