前の記事で言及したSTDIN/STDOUT を使うテストの記事に対しては、ブックマークコメントで「STDINは local *STDIN = *DATA; もできそう。」てなことも書いていたのですが、それに対して、STDIN を使うテストの記事にて以下の言及を頂きました。 入力パターンが1個しかないことはめったに無い 入力とそれに対する結果はなるべく近くに置きたい たしかにその通りと思います。 なので、DATAを使わずに、tieでSTDINの入力元を配列変数に置き換えることができないものかと試してみました。 use strict; use warnings; { # 入力元を配列変数に置き換えるクラス package TESTIN; sub TIEHANDLE { my $class = shift; my @lines = map { "$_\n" } @_; bless \@lines