请问哪里错了?求助
时间:2010-12-22
来源:互联网
参考前辈写了一段清除目录下的.tmp文件的程序,请问哪里错了?
#!/usr/bin/perl
use strict;
use File::Find;
sub wanted{
if(-f $File::Find::name){
if($File::Find::name=#\.tmp#i){
print"Removing $File::Find::name\n";
unlink $File::Find::name;
}
}
}
find(\$wanted,'/usr/local/hup_perl/tmpfile');
#我的疑问:
1.File::Find::name ,find ---等这几项大小写是规范呢还是必须这么写的?区别大小写吗?
2.Find是模块名,name和find 是这个模块能调用的方法吗?
3.参数 sub wanted 这2个是什么意思啊?以及后面的find(\$wanted,'')?
4.以上编译出错了,提示:
syntax error at ./test line 7, near ""Removing $File::Find::name\n";"
Unmatched right curly bracket at ./test line 11, at end of line
syntax error at ./test line 11, near "}"
Execution of ./test aborted due to compilation errors.
作者: 穆赫兰道 发布时间: 2010-12-22
- find(\$wanted,'/usr/local/hup_perl/tmpfile');
- find(\&wanted,'/usr/local/hup_perl/tmpfile');
作者: scrit 发布时间: 2010-12-22
刚才试了一下应该是这样的
- #!/usr/bin/perl
- use strict;
- use File::Find;
- sub wanted{
- if(-f $File::Find::name){
- if($File::Find::name=/\.tmp/i){
- print"Removing $File::Find::name\n";
- unlink $File::Find::name;
- }
- }
- }
- find(\&wanted,'/usr/local/hup_perl/tmpfile');
if($File::Find::name=#\.tmp#i){
应该这样
if($File::Find::name=/\.tmp/i){
关于你的疑问
1.File::Find::name ,find ---等这几项大小写是规范呢还是必须这么写的?区别大小写吗?
区分大小的。是规范必须这样写
2.Find是模块名,name和find 是这个模块能调用的方法吗?
模块名是 File::Find
3.参数 sub wanted 这2个是什么意思啊?以及后面的find(\$wanted,'')?
sub wanted这里是定义一个函数, 后面find(\&wanted,'') 是调用这个函数
这是我的个人理解,如有错误请指正
作者: scrit 发布时间: 2010-12-22
print后最好有空格
作者: yybmsrs 发布时间: 2010-12-22
我有3个错误。
1.##这里的//匹配,不是定界符吗?不是可以随便换的吗?为什么一定要用//啊?
2.find(\$)这里写错了,是&
3.还有个问题你们没指出来,=~少了~,会显示removing 1 ;加了~才正确。
作者: 穆赫兰道 发布时间: 2010-12-22
作者: 穆赫兰道 发布时间: 2010-12-22
而s///里是可以用定界符的,s###这样子写可以。
再次感谢各位,问题已解决。
作者: 穆赫兰道 发布时间: 2010-12-22
作者: zhlong8 发布时间: 2010-12-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28