#!/tools/local/perl5.7.0 -w use strict; my $pat = join('|',@ARGV); my @m = glob('*.m'); my %e; foreach my $m (glob('*.m')) { my ($what) = $m =~ /^(.*)\.m$/; open(M,"$what.m") || die "Cannot open $what.m:$!"; while () { if (/^\s*#\s*define\s+(\w*(?:$pat)\w*)\b/o) { warn "$what: $1\n"; my $f = $e{$what}; unless (defined $f) { open($f,">>$what.exc") || die "Cannot open $what.exc:$!"; $e{$what} = $f; } print $f "$1\n"; } } close(M); } foreach my $f (values %e) { close($f); }