14 12
发新话题
打印

请问用perl怎样创建一个文件?

请问用perl怎样创建一个文件?

具体的语法是什么?
if ((-e $dir_tmpfile) == 0)){
      if (touch $dir_tmpfile) == 0) {   
               &out_err("sorry,\t","The tmpfile is not exists!");
      }
}
我的要求是先判断一个文件$dir_tmpfile是否存在,如果不存在我要自己用perl语言创建,如果创建失败就调用函数out_err报错!
可是第二行好像不对啊!有touch这个函数吗?      
忘了谁也不能忘了你--我的草莓!

TOP

试试这样行不行。
复制内容到剪贴板
代码:
unless (-e $dir_tmpfile){
    open(FILE,">$dir_tmpfile") or &out_err("sorry,\t","The tmpfile is not exists!");    //创建文件并写入,失败的话执行out_err
}
      

TOP

FILE是一个供写入的文件句柄,使用完毕后close FILE。      

TOP

[QUOTE]最初由 catinpeking 发布
[B]试试这样行不行。
复制内容到剪贴板
代码:
unless (-e $dir_tmpfile){
    open(FILE,">$dir_tmpfile") or &out_err("sorry,\t","The tmpfile is not exists!");    //创建文件并写入,失败的话执行out_err
}
[/B][/QUOTE]

还是不行!文件根本就不存在如何open呢!哦派open只能创建一个临时文件!      
忘了谁也不能忘了你--我的草莓!

TOP

不会吧,我都测试过这样可以

不论文件是否存在,open(FILE,">$dir_tmpfile") 都能打开一个用于写入的文件句柄。而且效果是一致的,也就是说即使文件存在,它也会删除原来的文件,创建一个全新的文件。
    close FILE之后这个新文件就会被保存(不用这句也可以,程序正常退出后自动关闭打开的文件句柄)。      

TOP

这是我的测试程序:

复制内容到剪贴板
代码:
chomp($dir_tmpfile=<STDIN>);    //输入文件名
unless (-e $dir_tmpfile){
    print "File not found.\n";
    open(FILE,">$dir_tmpfile") or die "Couldn't open $dir_tmpfile:$!";    //创建文件并写入
    print FILE "New file.\n";    //在新文件中写入字符串“New file.”
} else {
    print "File found.\n";
}
close FILE;
      

TOP

Re: 不会吧,我都测试过这样可以

[QUOTE]最初由 catinpeking 发布
[B]不论文件是否存在,open(FILE,">$dir_tmpfile") 都能打开一个用于写入的文件句柄。而且效果是一致的,也就是说即使文件存在,它也会删除原来的文件,创建一个全新的文件。
    close FILE之后这个新文件就会被保存(不用这句也可以,程序正常退出后自动关闭打开的文件句柄)。 [/B][/QUOTE]

那样可以创建一个文件!我刚才成功了!
可是创建后的文件不能读,请问在创建的时候可以指定它的可读可写的属性吗?      
忘了谁也不能忘了你--我的草莓!

TOP

Perl中也有一个类似chmod的函数,应该是这样的:
复制内容到剪贴板
代码:
chmod 0755,$dir_tmpfile;    #注意这里的755是8进制数,所以最前面的0不能省,这点和shell中不一样
      

TOP

[QUOTE]最初由 catinpeking 发布
[B]Perl中也有一个类似chmod的函数,应该是这样的:
复制内容到剪贴板
代码:
chmod 0755,$dir_tmpfile;    #注意这里的755是8进制数,所以最前面的0不能省,这点和shell中不一样
[/B][/QUOTE]谢谢!      
忘了谁也不能忘了你--我的草莓!

TOP

Re: Re: 不会吧,我都测试过这样可以

[QUOTE]最初由 LinuxMars 发布
[B]

那样可以创建一个文件!我刚才成功了!
可是创建后的文件不能读,请问在创建的时候可以指定它的可读可写的属性吗? [/B][/QUOTE]
为什么创建之后的文件会不能读呢?你对那个目录的权限是什么?      

TOP

 14 12
发新话题