【发布时间】:2019-07-13 16:21:36
【问题描述】:
我想给用户输入(多行)并将多行输出打印到用户命名的新文件中
我已经试过了
say "enter filename";
chomp(my $filename = <STDIN>);
open my $fn, '>', $filename;
say "enter contents";
print "> ";
chomp(my $contents = <STDIN>);
print {$fn} $contents;
close $fn;
但这只适用于一行。
say "enter filename";
chomp(my $filename = <STDIN>);
open my $fn, '>', $filename;
say "enter contents";
print "> ";
chomp(my $contents = <STDIN>);
print {$fn} $contents;
close $fn;
但多行并创建一个新文件,而不是编辑旧文件
它要么不创建文件,不编辑文件,要么根本不做任何事情。
【问题讨论】:
-
请注意,您的两个 sn-ps 是相同的。也许删除一个以避免混淆? “多行”是什么意思? “编辑文件”是什么意思?
-
我的意思是让用户可以通过 Perl 编辑文件,并在输出中包含多于 1 行。
-
很抱歉这么难理解._.
-
您的意思是说
print {$fn} $contents,而不是print {$filename} $contents。$filename是一个字符串,但$fn是文件句柄。 -
看看What should I do when someone answers my question? 我还建议您查看您之前的问题并投票并接受您认为合适的问题