#!/usr/bin/perl use strict; use warnings; open IHF, '<', 'top.spef' or die "Cannot open 'top.spef' $!"; my %mapping; while ( ) { tr/*//d; my @fields = split; if ( /NAME_MAP/ .. /PORTS/ ) { redo if /PORTS/; next unless @fields == 2; $mapping{ $fields[ 0 ] } = $fields[ 1 ]; } if ( /PORTS/ .. eof ) { next unless /D_NET/ and @fields == 3; print "$fields[0] $mapping{$fields[1]} $fields[2]\n"; } } __END__