Untested, though it passes strict. I think there are some simplifications you could make in the logic in your @lines loop as well.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 %writer; for my $dest (@destinations) { $writer{$dest} = RTF::Writer->new_to_file("contract +/$dest/$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 = $writer{$destinations[$colour]}; + #NO-LONGER-PROBLEMATIC CODE my $destinationfolder = ("contract/$destinations +[$colour]"); # Also changed this one foreach $line (@lines) { if ($line =~ /^\s*\w/ && $line !~ /^\d$ +/){ $goal->paragraph ( "$line", ); } } } } } $count++; }
Remember that objects are just a subclass of scalars; and consider perusing perlreftut and perllol.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.
In reply to Re^2: Symbolic Reference in Method Call
by kennethk
in thread Symbolic Reference in Method Call
by EclecticScion
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |