请大家帮忙看代码。

请大家帮忙看代码。

请大家帮忙看代码。
在主程序中调用prep_ar_ext_sql,大家帮我看一下下面的代码实现了什么功能?

sub prep_ar_ext_sql
{
$template="ar_ext_dt.tmpl";
$sqlfile="ar_ext_dt.sql";
$start_dt=$_[1];
$end_dt=$_[2];

# Prepares the ar_ext_dt.sql file
if (-e "$sqlfile")
{
system "del $sqlfile";
}
open(TEMPLATE, "<$template") or die "Unable to open $template";
open(SQL_FILE, ">$sqlfile") or die "Unable to open $sqlfile";
while(<TEMPLATE>)
{
chomp;
$_ =~ s/<st_dt>/$start_dt/;
$_ =~ s/<end_dt>/$end_dt/;
print SQL_FILE "$_\n";
}
close(TEMPLATE);
close(SQL_FILE);
}


ar_ext_dt.tmpl 内容:
update n85_extr_date set ar_ap_from_date = '<st_dt>', ar_ap_to_date = '<end_dt>'
ar_ext_dt.sql 内容
update n85_extr_date set ar_ap_from_date = '20070320', ar_ap_to_date = '20070331'

ar_ext_dt.tmpl 和ar_ext_dt.sql 是什么关系呢?
[CCB]10[/CCB]

谢谢大家!
大家看这样理解对吗?
.tmpl 是模板文件,
sub prep_ar_ext_sql 实现:
先把系统中旧的ar_ext_dt.sql 文件删掉,
然后把ar_ext_dt.tmpl 中的<st_dt>和<end_dt>'两个参数用新的时间替换,生成新的ar_ext_dt.sql

不过,具体的这段代码是什么意思呢?
chomp;
$_ =~ s/<st_dt>/$start_dt/;
$_ =~ s/<end_dt>/$end_dt/;
print SQL_FILE "$_\n"; [color=red][/color]
就是的马tmp文件里和每一行中的<st_dt> <end_dt>替换掉啊.
然后把替换后的行写入SQL_FILE句柄中.
谢谢,不过,再问一下
谢谢,rjhome

再问一下:“$_ “没有被声明过呀,一般在什么情况下使用它?
$_ 是 perl 里的特殊变量。很多时候如果就算你不声明,perl 也假定当前变量是 $_. 例如 while(<FILE>) 的循环情况下,$_ 是文件句柄的当前行。
具体看 perldoc perlvar
好的,谢谢!
谢谢,前辈!