05/12/14 10:14:38
sleep( 1 );
if( $count++ > 10 ) { die "flock busy($lockfile)" }
}
$_FileList{$filename}{'lock'} = $lockfile;
$_FileList{$filename}{'handle'} = $handle;
}
if( $mode == 1 ) {
my $openfile = $filename;
if( $_FileList{$filename}{'temp'} ) { $openfile = $_FileList{$filename}{'temp'}; }
if( !open( $handle, "<$openfile" )) { die "file open error" }
$_HandleList{$handle} = $filename;
return $handle;
} elsif( $mode == 2 ) {
my $openfile = $filename;
if( $_FileList{$filename}{'temp'} ) { $openfile = $_FileList{$filename}{'temp'};
} else {
$filename =~ /(.*)(\\|\/)(.*)/;
my $tempfile = $3 eq '' ? "$1$2filelock/tmp/$filename" : "$1$2filelock/tmp/$3";
$_FileList{$filename}{'temp'} = $tempfile;
}
if( !open( $handle, ">$openfile" )) { die "file open error" }
$_HandleList{$handle} = $filename;
return $handle;
}
return undef;
}
引き続き、欠点や改良点があれば指摘して頂けるとありがたいです。