用Perl读写文本文件

用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"

我试图打开并读取一个文本文件,然后每行将该文件的内容写入一个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"; 
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 $!";