我在线练习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;”在行尾
答案 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
函数的帮助下计算它们。为行数保留第三个变量。