我希望perl能够从我指定的文件夹中解压缩文件,并在删除rared文件之后,这样它们就不会使用HDD空间了。文件可以采用这种格式:(r(ar=0-9)\sfv)
我已经安装了unrar,我是PERL的新手,所以如果我需要在某个地方添加什么东西,请具体一点。比如把这个添加到文件的顶部,然后放在那里。
我现在的剧本是这样的:
while (1)
{
foreach (`find ${upload_folder}`)
{
chomp;
if ($_ =~ /\.rar$/i)
{
$_=~/^([\W\w]+?)\/([^\/]+)$/;
`rar x "$_" "$1"`;
unlink($_);
}
#...
}
#...
}谢谢
//噢,是的,有时还可以有一个包含rar文件多个部分的文件夹,名为.r01,.r02。.r50和所有这些部分实际上是一个大的rar文件,分成很多部分。
发布于 2011-10-11 02:41:55
我不知道你的问题是什么。
但是,如果您的目标是真正学习Perl (而不是快速执行‘n’脏的攻击来执行特定的函数,那么一旦您添加了一些逻辑来执行多个文件的rar操作,那么您的代码就足够了--对不起,除非您展示您已经尝试过的内容,否则我不会从零开始为您编写一个Perl),有几种方法可以改进您的代码:
perl解释器。与您的代码完全无关,但第一个注释是:).sfv文件通常不是rar文件。它们包含校验和,而不是压缩数据。但是,
- `find` - use Perl native `File::Find` module
- `rar` command - while there may be Perl native rar module (search CPAN to find out), this is one of the rare situations where calling external command may be OK.应该始终指定系统命令的完整路径(安全注意事项)。
unlink()之后应该进行错误检查:
取消链接($file)或死“无法删除文件$file:$!\n";https://stackoverflow.com/questions/7719740
复制相似问题