我刚刚开始学习perl,我正在通过文件句柄。
我试过以下,但从未奏效:
dic={}
while True:
user_input = input('ΑΜ, Name: ').lower()
if user_input == 'q':
break
else:
AM, name = user_input.split(',')
AM = int(am)
dic[AM]=name
print(dic)
print('Dictionary contents')
for char in sorted(dic):
print(char, dic[char])
以下是有效的,但我不明白为什么。
#!/usr/bin/perl
$file = 'File.txt';
open ($fh, '>', $file) or die "Error :$!";
print "Enter blank line to end\n";
while (<STDIN>) {
last if /^$/;
print "FH: $fh \n";
print "dollar: $_ \n";
}
close $fh;*
答案 0 :(得分:3)
您已打开文件句柄$fh
以写入您的文件。您的第二个示例将数据打印到此文件句柄,因此它可以工作:
print $fh "$line\n";
但是您的第一个示例不会打印到$fh
,因此输出会转到STDOUT
。
print "FH: $fh \n";
print "dollar: $_ \n";
为了让您的第一个示例正常工作,您需要打印到正确的文件句柄。
print $fh "FH: $fh \n";
print $fh "dollar: $_ \n";