Ich würde einfach immer zeilenweise einlesen, so wie immer. Das ganze dann in einer while-Schleife, immer wieder bis eine entsprechende Bedingung erreicht wurde. ( Z.B. max. Anzahl von Zeilen erreich, oder der Benutzer hat "exit" oder "end" eingegeben oder so was)
Die einzelnen Zeilen könnte man dann entweder mit
.= an einen Scalar oder mit
push an einen Array anhängen.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B