#!/usr/bin/perl use strict; use warnings; use File::Copy qw{ move }; sub update_lcrecord_now { my ($lcid,$lcroadname,$lcroadnumber,$locotype,$lcowner,$lcinterrr,$lcassign) = @_; open my $lcinfile, '<',"$rrconfig::locodata" or die $!; open my $lcinfile2, '<',"$rrconfig::availlocodata" or die $!; open my $lcinfile3, '<',"$rrconfig::availlocoyng" or die $!; open my $lcoutfile, '>', "$rrconfig::locotemp" or die $!; open my $lcoutfile2, '>', "$rrconfig::availlocotemp" or die $!; open my $lcoutfile3, '>', "$rrconfig::availynglocotemp" or die $!; while (<$lcinfile>) { s/^$lcid\:.*/$lcid\:$lcroadname\:$lcroadnumber\:$locotype\:$lcowner\:$lcinterrr\:$lcassign/g; print $lcoutfile $_; } while (<$lcinfile2>) { s/^$lcid\:.*/$lcid\:$lcroadname\:$lcroadnumber\:$locotype\:$lcowner\:$lcinterrr\:$lcassign/g; print $lcoutfile2 $_; } while (<$lcinfile3>) { s/^$lcid\:.*/$lcid\:$lcroadname\:$lcroadnumber\:$locotype\:$lcowner\:$lcinterrr\:$lcassign/g; print $lcoutfile3 $_; } close $lcoutfile; close $lcoutfile2; close $lcoutfile3; move "$rrconfig::locotemp", "$rrconfig::locodata" or die "move failed: $!"; move "$rrconfig::availlocotemp", "$rrconfig::availlocodata" or die "move failed: $!"; move "$rrconfig::availynglocotemp", "$rrconfig::availlocoyng" or die "move failed: $!"; } sub populate { open my $out, '>', shift or die $!; print {$out} "id0:xxx\n"; close $out; } populate($_) for 1 .. 3; $rrconfig::locodata = '1'; $rrconfig::availlocodata = '2'; $rrconfig::availlocoyng = '3'; $rrconfig::locotemp = '1.tmp'; $rrconfig::availlocotemp = '2.tmp'; $rrconfig::availynglocotemp = '3.tmp'; update_lcrecord_now(qw(id0 roadname0 road0 loco0 owner0 inter0 assign0));