ルモーリン
ホーム更新サービス雑談ランドナーコースガイド鉄ゲタ自転車Linuxリンク連絡先

改行無し終端テキストを扱う

興味深い問題を見つけたので

改行無し終端テキストを扱う - Qiita

解いてみた

最後の行が改行無しの見出し行でも削除できるように改善しました。 ただ、元の問題では仕様が不明確に見えました。 改行無しの行を削除するから改行なしも削除されると考えると良いでしょうか? それともファイルの最後を改行なしに維持すべきなのでしょうか?
#!/usr/bin/perl

use utf8;
use strict;
use warnings;

print s/^[A-Z]+\n?$//mr while (<>);

exit;

参考資料

「"^" 及び "$" は文字列の最初と最後に対するマッチングから、 文字列中の各行の先頭と末尾に対するマッチングへと変更」
perlre - Perl 正規表現 - perldoc.jp

「s///r が (置換の数ではなく)最終的に置換された文字列を返すように 振る舞いを変更します」
perlretut - Perl の正規表現のチュートリアル - perldoc.jp