äà, ñëåäèò
ñîáñòâåííî, âîò ïðîñòåíüêèé “ïåðåíóìåðîâûâàòåëü”
my $cnode = 1;
my %nodes;
my $croad = 1;
my %roads;
while (<>) {
s/^RoadID=(\d+)/sprintf "RoadID=%d", reroad($1)/ie;
s/^Nod(\d+)=(\d+),(\d+),(\d+)/sprintf "Nod$1=$2,%d,$4", renode($3)/ie;
s/^Nod=(\d+)/sprintf "Nod=%d", renode($1)/ie;
s/^TraffPoints=(\d+),(\d+),(\d+)/sprintf "TraffPoints=%d,%d,%d", renode($1), renode($2), renode($3)/ie;
s/^TraffRoads=(\d+),(\d+)/sprintf "TraffRoads=%d,%d", reroad($1), reroad($2)/ie;
print;
}
sub renode {
if (!$nodes{$_[0]}) { $nodes{$_[0]} = $cnode++; }
return $nodes{$_[0]};
}
sub reroad {
if (!$roads{$_[0]}) { $roads{$_[0]} = $croad++; }
return $roads{$_[0]};
}