in reply to input record separator and inplace editing

Yes, undef $/ rather than setting it to null as this will give you the desired result. Using a block and local will save having to remember to reset it which can avoid nasty suprises.

{ local $/; # this undefines $/ within this block only $all = <FH>; } # $/ is not undefined here so input works as normal again

tachyon