用Perl读写文本文件
我试图打开并读取一个文本文件,然后每行将该文件的内容写入一个HTML文件。到目前为止,我已经想到了这个:用Perl读写文本文件,perl,Perl,我试图打开并读取一个文本文件,然后每行将该文件的内容写入一个HTML文件。到目前为止,我已经想到了这个: use strict; use locale; my (@datei, $i); open (FHIN,"HSS_D.txt") || die "couldn't open file $!"; @datei= <in>; close FHIN; open (FHOUT, ">pz2.html"); print FHOUT "<HTML>\n"
use strict;
use locale;
my (@datei, $i);
open (FHIN,"HSS_D.txt") || die "couldn't open file $!";
@datei= <in>;
close FHIN;
open (FHOUT, ">pz2.html");
print FHOUT "<HTML>\n";
print FHOUT "<HEAD>\n";
print FHOUT "<TITLE>pz 2</TITLE>\n";
print FHOUT '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">';
print FHOUT "\n</HEAD>\n";
print FHOUT "<BODY>\n";
for ($i = 0; $i < @datei; $i++) {
print FHOUT "<p>$datei[$i]</p>\n";
}
print FHOUT "</BODY></html>\n";
close (FHOUT);
使用严格;
使用区域设置;
我的(@datei,$i);
打开(FHIN,“HSS_D.txt”)| | die“无法打开文件$!”;
@datei=;
关闭FHIN;
打开(FHOUT,“>pz2.html”);
打印出“\n”;
打印出“\n”;
打印出“pz 2\n”;
打印出“”;
打印出“\n\n”;
打印出“\n”;
对于($i=0;$i<@datei;$i++){
打印“$datei[$i]\n”;
}
打印出“\n”;
关闭(FHOUT);
然而,我每次都会遇到编译错误,我无法找出错误所在。谢谢你的帮助 脚本中的问题 您在数组中存储了不正确的处理程序,这是您的问题所在
@datei=
应该是
@datei = <FHIN>;
如果您希望循环遍历其索引,请使用以下格式
for my $index(0..$#arrray)
{
上面的
。
表示范围运算符$#
将给出脚本中的最后一个索引值问题
您在数组中存储了不正确的处理程序,这是您的问题所在@datei=
应该是
@datei = <FHIN>;
如果您希望循环遍历其索引,请使用以下格式
for my $index(0..$#arrray)
{
上面的。
表示范围运算符$#
将给出最后一个索引值如果您通过使用警告
或使用警告qw(所有)
-您应该始终这样做,您会看到类似这样的情况:
Name“main::in”仅使用一次:foo.pl第6行可能存在打字错误。
当然,也就是这一行:
@datei= <in>;
顺便说一句,我投票将这个问题作为离题题结束,因为它是关于一个由简单的印刷错误引起的问题。如果您通过使用警告或使用警告qw(all)
-您应该一直这样做,您会看到类似这样的情况:
Name“main::in”仅使用一次:foo.pl第6行可能存在打字错误。
当然,也就是这一行:
@datei= <in>;
顺便说一句,我投票结束了这个问题,因为它是关于一个由简单的印刷错误引起的问题。charset=iso-8859-1
?这是什么,1998?@melpomene,请不要从Charset开始,这是一片沼泽。我宁愿看到它被指定,然后盲目地相信它将是UTF-8。。。它既不是在描述Perl文件中使用的编码的顶部指定为pragma,也不是在输入到输出处指定的编码。。。也许它确实是拉丁语-1?charset=iso-8859-1
?这是什么,1998?@melpomene,请不要从Charset开始,这是一片沼泽。我宁愿看到它被指定,然后盲目地相信它将是UTF-8。。。它既不是在描述Perl文件中使用的编码的顶部指定为pragma,也不是在输入到输出处指定的编码。。。也许它确实是拉丁语-1?
open(my $fh, '<', 'HSS_D.txt') or die "couldn't open file $!";