• 締切済み

文章を一文一文として処理するについて

最近Perlの勉強を始めたものですが、文章を一文一文として処理することが出来なくてすごく困っています。 例えば、 B a I b I c I d B e I f I k I m B h I n が入力されたとき B 4 a I 3 b I 2 c I 1 d B 5 e I 4 f I 3 k I 2 m I 1 m B 2 h I 1 n を出力されたいのです。 B を区きり文字として、いろいろやってみましたが、うまく出来ませんでした。何方か分かりやすい説明して頂ければ大変有難いのです。

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

確かに質問にある例だと、B5e からI1m までなにがどうなって この出力になるのかわかりませんね。 ということでお遊び。 use strict; use warnings; use feature ':5.10'; my $data = do {undef $/; <DATA>}; my @records = split qq{(?=\nB)}, $data; foreach my $record (@records) { my $c; print join qq{\n}, reverse map {s/ /++$c/e; $_} reverse split qq{\n}, $record; } __END__ B a I b I c I d B e I f I k I m B h I n 出力結果: B4a I3b I2c I1d B4e I3f I2k I1m B2h I1n まあそれっぽくなってるのではないかと。

qisaskar
質問者

お礼

ご指導有難う御座いました。。今後もよろしくお願い致します。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

入出力の関係がわかりません. どのような入力に対してどのような出力がほしいのか, きちんと言葉で表現してください.