Perl脚本可以修改自己吗?

Jer*_*len 11 perl

我想让我的脚本在内部跟踪他们的最后修订日期作为评论.这可能吗?在我看来,它需要获取日期,然后打开其脚本文件的附加,写入数据并保存文件.

感谢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.
Run Code Online (Sandbox Code Playgroud)

Mar*_*ork 7

您可以让您的版本控制系统自动执行此操作.

但是如果你正在使用版本控制,那么这个步骤实际上并不是真正的nesaccery.

  • 那么,这取决于你的VC.Git没有进行关键字扩展.(嗯,它可以,但设置并不是建议不是微不足道.) (2认同)

cjm*_*cjm 6

这是可能的,但这并不是一个好主意.首先,它不会更新日期,直到你运行它.

如果您使用的是良好的编辑器,则可能有一种方法可以在保存文件时自动插入时间戳.例如,我设置Emacs在HTML文件中使用write-contents-hooks.(使用Perl代码需要一些修改,但cjm-html-timestampcjm-misc.el中会给你一个起点.)