On 2020-Nov-06, David Rowley wrote: > +# Handle makefile rules for when file to be added to the project > +# does not exist. Returns 1 when the original file add should be > +# skipped. > +sub FindAndAddAdditionalFiles > +{ > + my $self = shift; > + my $fname = shift; > + my ($ext) = $fname =~ /(\.[^.]+)$/; > + > + # For .c files, check if a .l file of the same name exists and add that > + # too. > + if ($ext eq ".c") > + { > + my $filenoext = $fname; > + $filenoext =~ s{\.[^.]+$}{};
I think you can make this simpler by capturing both the basename and the extension in one go. For example, $fname =~ /(.*)(\.[^.]+)$/; $filenoext = $1; $ext = $2; so you avoid the second =~ statement. > + if (-e "$filenoext.l") > + { > + AddFileConditional($self, "$filenoext.l"); > + return 1; > + } > + if (-e "$filenoext.y") > + { > + AddFileConditional($self, "$filenoext.y"); Maybe DRY like for my $ext (".l", ".y") { my $file = $filenoext . $ext; AddFileConditional($self, $file) if -f $file; return 1; } Note: comment says "check if a .l file" and then checks both .l and .y. Probably want to update the comment ...