一行空行引发的血案

原代码如下:

#!/usr/bin/perl

use File::Path ;
$\="\n";

my $cfg="clr.cfg";
open (mycfg,$cfg) or die "open $cfg error![$!]";

while(<mycfg>)
{
    chomp;
    &chk_file();
}

close(mycfg);

sub chk_file
{
    $_=$ENV{"HOME"}.$_;
    if (-f )
    {
        &unlink_file();
    }
    if (-d )
    {
        &unlink_path();
    }
    return 0;
}

sub unlink_path
{
    chomp;
    my $path=$_;
    chdir $path or die "chdir error![$!]";

    opendir(myfile,$path) or die "find $path error![$!]";

    foreach (readdir myfile)
    {
        next if $_ eq "." or $_ eq "..";
        rmtree($_) if -d;
        unlink ;
    }

    closedir(myfile);
    rmdir $path;
    mkdir $path;
    return 0;
}

sub unlink_file
{
    unlink or die "remove $_ error![$!]";
    return 0;
}

config文件如下:

/tmp/

执行结果是:

家目录下所有文件文件夹全部被删除!

包括脚本本身,所以好像原脚本不是这样的...

o(︶︿︶)o 唉。。。堪比电锯惊魂啊,关键是在公司的开发机上执行的,大家半年的心血就没了,程序倒是有备份,但是有的头文件什么的,全部丢失。

记下这次教训,提醒自己,还太年轻,做事不谨慎,平时也没做好备份工作,这是对自己和其他同事的不负责任。


备注:自己配置cfg文件时其实也主意到了哪行空行,但是完全没有想到它带来的结果,还抱着试试看的心态,想看看程序遇到空行会怎么办....程序太不严谨了。记下此事件,警钟长命。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值