checkincludes.pl 529 B

123456789101112131415161718192021222324
  1. #!/usr/bin/perl
  2. #
  3. # checkincludes: Find files included more than once in (other) files.
  4. # Copyright abandoned, 2000, Niels Kristian Bech Jensen <nkbj@image.dk>.
  5. foreach $file (@ARGV) {
  6. open(FILE, $file) or die "Cannot open $file: $!.\n";
  7. my %includedfiles = ();
  8. while (<FILE>) {
  9. if (m/^\s*#\s*include\s*[<"](\S*)[>"]/o) {
  10. ++$includedfiles{$1};
  11. }
  12. }
  13. foreach $filename (keys %includedfiles) {
  14. if ($includedfiles{$filename} > 1) {
  15. print "$file: $filename is included more than once.\n";
  16. }
  17. }
  18. close(FILE);
  19. }