Perl:迭代文件中的行

时间:2015-10-25 08:09:51

标签: perl

print "enter file name\n";
$infile = <>;
open IN, "$infile";
$string1 = $line; #store first line of file as $string1
while($line = <IN>){
  $string2 = string1 + $line;
  print "$string2\n";
}

我尝试编写一个提示用户输入文件名的功能,打开文件,将文件的第一行存储为$string1。然后它迭代文件中的下一行并向每行添加$string1并打印出输出。

所以,如果我有一个包含

的文件
10
5
6
7

$string1应为10.输出应为:

15
16
17

我当前的程序似乎只打印我文件的内容,而不是将第一行添加到其他每一行。

1 个答案:

答案 0 :(得分:3)

当您尝试提供$line时,$string1为空。

可能是这样的:

print "enter file name\n";
$infile = <>;
open IN, "$infile";
$string1 = <IN>; #store first line of file as $string1
chomp($string1);
while($line = <IN>){
  chomp($line);
  $string2 = $line+$string1;
  print( $string2 . "\n");
}

chomp()是为了从字符串中删除换行符。