You look like you've got it figured out except for reading the entire file, not one line at a time.
To read the entire file, you can set
$/ to undef or use File::Slurp.
use File::Slurp "read_file";
my $data = read_file($tmpfile);
$data =~ tr/\r\n//d;