in reply to Putting file contents into a scalar

Using a while loop as Foxcub and vek advertise will do the trick, but joe++'s version is better. With the loops, you pay for the cost of reading the file line by line, only to just join all the lines back together. You should either localize $/ to slurp the file or say something like:
open my $fh, "<", $txt_file or die "Cannot open $txt_file: $!"; read $fh, my $contents, -s $fh;
Also, please don't ever just say open(FH, $variable). If your $variable comes from user input, people can do malicious tricks like starting the "filename" with a > or end it with a | to make your script clobber files or execute commands when it runs. By using the three-argument form of open you avoid security holes or just plain bugs.

Makeshifts last the longest.