在行的开头添加符号,并使用perl在行的末尾添加相同的符号

时间:2013-07-19 12:37:03

标签: perl filehandle

我在线练习perl作业,并在Sandbox中找到了。

如何编写添加的perl脚本 - >到前面和< - 到每行的末尾。然后报告数字行,最长行的长度以及原始输入中的总字节数。例如,输入文件

//Input File 
    Hi there.
    This is Fred.
    Who are you?

应该产生输出:

//Output File
    ->Hi there.<-
    ->This is Fred.<-
    ->Who are you?<-
    3 lines, longest 13 characters, 37 bytes total.

我可以添加 - &gt;仅在使用此代码的行的开头:

#!/usr/bin/perl
use strict;
use warnings;

open(FH,"input.pl") or die "cannot open file: $!\n"; #Input File
open(NEWFH,"> output.pl") or die "cannot write\n"; #Output File
print "opened file\n";
while(<FH>){
  print NEWFH "-> $_ ";
}
close FH;
close NEWFH; 

你能帮我加一下“ - &gt;”在行尾

2 个答案:

答案 0 :(得分:2)

作为练习,你可以选择这些单行并弄清楚它们是如何工作的:

perl -pe  's/^/->/; s/$/<-/;' input.txt
perl -ple '$_ = "->$_<-";'    input.txt

要获得更详细的版本,请添加-MO=Deparse开关。

推荐阅读:

答案 1 :(得分:1)

只需将其添加到打印字符串的末尾,即可以相同的方式在行后添加:

chomp; # Strip off newline character
print NEWFH "-> $_ <-\n"; # Add newline ay the end

至于最长的字符串和总计数:您可以使用2个变量来存储当前的最大长度和当前总数,并在length函数的帮助下计算它们。为行数保留第三个变量。