首页 > 解决方案 > 在每次运行 perlScript 时在属性文件中创建一个新的变量名

问题描述

我在属性文件中的变量是 $starttime ,并且在我第二次运行具有当前日期值的 $stattime_2 的新变量之后,该值是 YYYYMMDDHH24MI 中的当前日期。

我的代码是

#!/usr/local/bin/perl
use Time::Piece;
$starttime = localtime->strftime('%Y%m%d%H%M');
$i = 0;
open my  $file, '>', 'order.properties' or die $!;

print $file "Start_time", $i, " = ", $starttime;
close $file;

对于每次运行, order.properties 文件应该像这样更新

第一次

Start_time_1 = 2018121317:04(the current system Time)

第二次

Start_time_2 = 2018121317:05.........

3rd,4th,5th 变量名应该改变并且当前日期和时间应该分配

输出将像第三次运行

Start_time_1 = 2018121317:04
Start_time_2 = 2018121317:05
Start_time_3 = 2018121317:09

脚本的执行如何等于属性文件中的开始时间条目

标签: perl

解决方案


我不会给你一个完整的答案,因为你会通过自己的工作来了解更多。但我会指出你需要解决的两件事。

  1. 您使用 打开文件>,每次运行程序时都会覆盖该文件。相反,您需要使用“附加”模式,它将新数据添加到文件的末尾。您可以通过使用>>而不是>.

  2. 您还需要确定将哪个数字附加到Start_time. 显然,您的程序每次完成时都会关闭,因此您不能将其存储为变量。我建议最简单的方法可能是在编写新行之前计算文件中当前的行数。

还有两条建议。Perl FAQ是 Perl 编程建议的重要来源,您应该始终拥有use strictuse warnings您的 Perl 程序中。


推荐阅读