Perl 新手请教 permission denied

diablo518 2010-09-18 11:47:15
Perl新手求助:permission denied问题

一个文件夹(目录为C盘下的text)里大概有500个文本文档(大概500多个),把所有文本文档内容由大写字母换为小写字母,出现问题:permission denied at line 12,说我打开文件有问题。

代码如下:


#!/usr/bin/perl -w

opendir (DIR, "C:/test") || die "can not open C:/test!";

#把文件名存入数组
@filename=readdir(DIR);

close (DIR);

for($i=0;$i<@filename;$i++) {

open (CONTENT, "C:/test/$filename[$i]") || die "can not open file: $!";

#把文件内容存入数组
@buff=<CONTENT>;
close (CONTENT);

for ($index=0; $index < @buff; $index++) {
#把字母转为小写
$buff[$index]=lc ($buff[$index]);

}

#把转换后的内容写入源文件
open (DEST,">C:/test/$filename[$i]") || die "$!";
print DEST @buff;
close (DEST);

}




感谢高手为小弟解答!

...全文
882 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2010-09-19
  • 打赏
  • 举报
回复
opendir的返回结果包括.和..,也就是当前目录和上层目录。你抛的这个错应该是你在把目录当文件打开导致的。
另外你应该学会自己debug,这里用到的应该是最最基本的技巧。你不是打开一个文件的时候出错了吗?那你就把要打开的文件打印出来,看看是打开哪个文件时出错的。一般问题就很显然了。
proorck6 2010-09-19
  • 打赏
  • 举报
回复
学习中~~
奔跑哥 2010-09-19
  • 打赏
  • 举报
回复
楼上说的很对,readdir返回的结果中包含了 . 和 .. ,所以你打开文件的时候会报错。

这类问题应该很简单,你使用die来打印错误信息,那你就应该多看错误提示信息,问题就一目了然了。
diablo518 2010-09-19
  • 打赏
  • 举报
回复
已经调出来了,谢谢大家的提示。
telecomshy 2010-09-19
  • 打赏
  • 举报
回复
学习了。。。

37,722

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧