#!/bin/perl -w -n use strict; use vars qw( $inGC $lastARGV $linenum ); sub BEGIN { $inGC = 0; $lastARGV = ''; } if ($ARGV eq $lastARGV) { $linenum++; } else { $linenum = 1; $lastARGV = $ARGV; $inGC = 0; } /\bN?GCPRO.*;/ and not $inGC and $inGC = 1; if ($inGC) { my $printSep; if (my $openBrace = /\{/g) { $inGC += $openBrace; } if (my $closeBrace = /\}/g) { $inGC -= $closeBrace; if ($inGC <= 0) { $inGC = 0; $printSep = 1; } } print "$ARGV:$linenum: $_" if /\breturn\b/; if (/\bN?UNGCPRO;/) { $inGC = 0; $printSep = 1; } }