我是新手Perl程序员,正在尝试编写文本文件。我可以将文本文件写入现有目录中,但最终我想能够创建自己的目录。
我将从我的课程作业网站下载文件,并希望将文件放在以课程名称命名的文件夹中。我不想提前手动为每个课程创建文件夹,而且我还想最终与他人共享脚本,因此我需要一种方法来创建目录并根据HTML中的课程名称进行命名。
到目前为止,我已经成功实现了这个:
"
目录
我也尝试了
我从Perl Cookbook第7.1章节得到了这个想法。它无法运行,并显示错误消息
我将从我的课程作业网站下载文件,并希望将文件放在以课程名称命名的文件夹中。我不想提前手动为每个课程创建文件夹,而且我还想最终与他人共享脚本,因此我需要一种方法来创建目录并根据HTML中的课程名称进行命名。
到目前为止,我已经成功实现了这个:
use strict;
my $content = "Hello world";
open MYFILE, ">C:/PerlFiles/test.txt";
print MYFILE $content;
close (MYFILE);
"
test.txt
文件不存在,但是C:/PerlFiles/
存在,据说输入>
可以让我创建文件,太好了。
然而,以下操作不起作用:
"use strict;
my $content = "area = pi*r^2";
open MYFILE, ">C:/PerlFiles/math_class/circle.txt";
print MYFILE $content;
close (MYFILE);
目录
C:/PerlFiles/math_class/
不存在。我也尝试了
sysopen
,但是在添加标志时出现错误:use strict;
my $content = "area = pi*r^2";
sysopen (MYFILE, ">C:/PerlFiles/math_class/circle.txt", O_CREAT);
print MYFILE $content;
close (MYFILE);
我从Perl Cookbook第7.1章节得到了这个想法。它无法运行,并显示错误消息
Bareword "O_CREAT" not allowed while "strict subs" in use
。不过,该书出版于1998年,因此O_CREAT
可能已经过时。我认为在某一点上,我需要花钱购买最新版本的书籍。但是,我还是想知道我错了什么?或者,在创建文件之前,是否必须手动创建目录?
O_CREAT
并不过时,它是由Fcntl模块提供的符号。您需要这样导入它:use Fcntl qw(O_CREAT);
- 将该行添加到其他use
语句附近。 - daxim