我想让我的脚本在内部跟踪他们的最后修订日期作为评论。这可能吗?在我看来,它需要获取日期然后打开其脚本文件以进行追加,写入数据并保存文件。
感谢Everone,一位伟大的回答者。根据GreenMatt留下的代码片段,我把它扔在一起......
#!/usr/bin/perl -w
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime time;
$year += 1900;
$mon +=1;
open SELF, ">> letterhome.pl" or die "Unable to open self";
#print SELF "# ran/modified at " . join(' ', localtime(time)) . "\n";
print SELF "# ran/modified at $hour:$min:$sec on $mon/$mday/$year.\n";
close(SELF);
# ran/modified at 31 48 23 24 7 110 2 235 1
# unformated result of using localtime(time)
#Results using formated time/date
# ran/modified at 0:1:43 on 8/25/2010.
# ran/modified at 0:2:40 on 8/25/2010.
# ran/modified at 0:4:35 on 8/25/2010.
答案 0 :(得分:7)
您可以让您的版本控制系统自动执行此操作。
但是如果你正在使用版本控制,那么这个步骤实际上并不是真正的nesaccery。
答案 1 :(得分:6)
这是可能的,但这并不是一个好主意。首先,它在你运行它之前不会更新日期。
如果您使用的是良好的编辑器,则可能有一种方法可以在保存文件时自动插入时间戳。例如,我设置Emacs使用write-contents-hooks
在HTML文件中执行此操作。 (使用Perl代码需要进行一些修改,但cjm-misc.el中的cjm-html-timestamp
会为您提供一个起点。)
答案 2 :(得分:3)
按要求添加我的评论作为答案。
听起来你已经知道该怎么做了。如果它是unix / linux盒子上的perl脚本,那么权限应该不是问题,如果它在Windows框中,它可能不会让你在文件正在使用中。
答案 3 :(得分:1)
以下是在FreeBSD系统上运行的。它附加到最后,这听起来对你来说是可以接受的,但不符合记录文件变化的“正常”方式 - 至少对我而言,因为我几乎总是在开始时看到它完成。您可能想要更改日期/时间的显示方式。
#!/usr/bin/perl -w
open SELF, ">> selfModify.pl" or die "Unable to open self";
print SELF "# ran/modified at " . join(' ', localtime()) . "\n";
close(SELF);
这是否明智我会留给你决定。
答案 4 :(得分:1)
#! /usr/bin/env perl
use warnings;
use strict;
use autodie;
{
open my $self, '>>', $0;
my $time = localtime;
print {$self} "# ran on $time\n";
}
__END__
# ran on Wed Aug 25 16:41:05 2010
答案 5 :(得分:-1)
听起来你已经知道该怎么做了。如果它是unix / linux盒子上的perl脚本,那么权限应该不是问题,如果它在Windows框中,它可能不会让你在文件正在使用中
- 约翰