Ниже я нашел несколько примеров использования сценария "stat".
$source_mtime = (stat($source_file))[9];
$dest_file_mtime = (stat($dest_file))[9];
$script_mtime = (stat($this_file))[9];
if (-e $dest_xml_file)
{
if ($dest_file_mtime gt $source_mtime) // gt used
{
printf "No $this_file Scan Needed\n";
exit(0);
}
# OR the style below
if ($script_ltime eq $dest_file_mtime ) // eq used
{
printf "No $this_file Scan Needed\n";
exit(0);
}
# OR the style below
if ($script_ltime eq $source_mtime ) // eq used
{
printf "No $this_file Scan Needed\n";
exit(0);
}
# or other style?
}
спасибо.
[обновлено 0]
например, стиль ниже. когда я отлаживаю в сценарии. Я обнаружил, что значение script_ltime и значение dest_file_mtime не будут равными.
if ($script_ltime eq $dest_file_mtime ) // eq used
{
printf "No $this_file Scan Needed\n";
exit(0);
}
кстати, если я вместо сценария со стилем belwo. я нашел даже я изменил свой сценарий. Сценарий по-прежнему не будет сканироваться снова. Для значения dest_file_mtime всегда больше, чем значение source_mtime.
if ($dest_file_mtime gt $source_mtime) // gt used
{
printf "No $this_file Scan Needed\n";
exit(0);
}
Вот почему я решил использовать eq или gt. и какой стиль лучше для «Когда я изменил один из трех файлов, сценарий всегда будет сканировать необходимое».
[обновлено 1]
if (-e $dest_file) {
open(DEST_FILE, "$dest_file") ;
$_ = <DEST_FILE>;
close DEST_FILE;
if (/^\/\*([\w]+)\/\/([\w]+)\*\//) { # ignored by me code here
$ltime = $1; # middle variable value assignment
$script_ltime = $2;
if (($ltime eq $mtime) && # eq operator is meaningful
($script_ltime eq $script_mtime)) {
printf "No $this_file Scan Needed\n";
exit(0);
}
}
}