[gta02-core] Script to extrace global label names from schematics

Rask Ingemann Lambertsen ccc94453 at vip.cybercity.dk
Sun Aug 30 21:07:27 CEST 2009

   FWIW, this is what I use to find mismatches in global labels:

#!/usr/bin/perl -w

# eeschema-glabel-report - Report global labels in eeschem schematics (*.sch).

# Copyright (C) 2009  Rask Ingemann Lambertsen <ccc94453 at vip.cybercity.dk>

#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.

#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    GNU General Public License for more details.

#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

use strict;
$, = "\t";
$\ = "\n";

my ($label, $direction);
my %labels;

while (<>) {
	if (($direction) = /^Text\s+GLabel\s+\d+\s+\d+\s+\d+\s+\d+\s+(\w+)/) {
		$label = <>;
		chomp $label;

		push @{$labels{$label}}, [ $direction, $ARGV ];

sub sort_direction
	($a->[0] eq $b->[0])
		and return 0;
	($a->[0] eq 'Output' || $b->[0] eq 'Input')
		and return -1;
	($a->[0] eq 'Input' || $b->[0] eq 'Output')
		and return 1;
	return ($a->[0] cmp $b->[0]);

foreach $label (sort (keys %labels)) {
	foreach my $i (sort sort_direction @{$labels{$label}}) {
		print $label, $i->[0], $i->[1];

Rask Ingemann Lambertsen
Danish law requires addresses in e-mail to be logged and stored for a year

More information about the gta02-core mailing list