open(FILE, "+< hoge.dat");
flock(FILE, 2);
my @dat = <FILE>;
my $hit;
foreach(@dat){
if(/^aaaa$/){
$_ = 'gggg';
$hit = 1;
last;
}
}
push @dat, "gggg\n" if !$hit;
seek(FILE, 0, 0);
print FILE @dat;
truncate(FILE, tell(FILE));
close(FILE);