0

私はオンラインで 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.

私は追加することができます -> このコードで行の先頭にのみ:

#!/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; 

行末に「->」を追加するのを手伝ってもらえますか

4

2 に答える 2

2

演習として、これらのワンライナーを取り上げて、それらがどのように機能するかを理解することができます。

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

より詳細なバージョンについては、-MO=Deparseスイッチを追加します。

推奨読書:

于 2013-07-19T13:40:16.090 に答える
1

印刷された文字列の最後に含めることにより、同じ方法で行の後に追加するだけです。

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

最長の文字列と合計数に関しては、2 つの変数を使用して現在の最大長と現在の合計を格納し、関数を使用してそれらを計算できlengthます。行数の 3 番目の変数を保持します。

于 2013-07-19T12:55:30.060 に答える