J'ai trouvé quelques exemples de scripts "stat" d'utilisation ci-dessous.Comment comparer les temps retournés par les statistiques de Perl?
$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?
}
merci.
[mise à jour 0]
par exemple le style ci-dessous. quand je débogue dans le script. J'ai trouvé la valeur de script_ltime et la valeur de dest_file_mtime ne seront pas égales.
if ($script_ltime eq $dest_file_mtime) // eq used
{
printf "No $this_file Scan Needed\n";
exit(0);
}
btw, si je remplace le script par le style belwo. J'ai même trouvé que j'ai modifié mon script. Le script ne sera toujours pas analysé à nouveau. Pour la valeur dest_file_mtime, toujours supérieure à la valeur source_mtime.
if ($dest_file_mtime gt $source_mtime) // gt used
{
printf "No $this_file Scan Needed\n";
exit(0);
}
Pourquoi ne pas avoir utilisé eq OR gt? et quel style est mieux pour "Quand j'ai changé l'un des trois fichiers, le script va toujours scanner nécessaire."
[mis à jour 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);
}
}
}
Avez-vous des questions? –
Cela dépend de ce que vous voulez comparer. En d'autres termes, vous devez savoir ce que vous voulez faire avant de pouvoir déterminer comment vous allez le faire. –
@Alexandr. mis à jour plus haut. Je vous remercie. –