http://qs321.pair.com?node_id=655381

siva kumar has asked for the wisdom of the Perl Monks concerning the following question:

I want to read a huge file content (4GB) and store it in a variable that to pass to a generic function.
ls -lh /path/2024.sql -rw-r--r-- 1 user group 609M Oct 17 20:49 2024.sql
I hv used the below code, but got "Out of memory" error.
open(FH,"/path/2024.sql"); $/=EOF; $var = <FH>; &callGenericfunction($var);
Even tried using Tie::File.
use Tie::File; $filename = "/path/2024.sql"; my $obj = tie @array, "Tie::File", $filename; $var = join " ",@array; &callfunction($var);
Tried with buffering.
open (FH, "</path/2024.sql") or die "bah"; binmode FH; $buffer = 1024 * 1024 * 2; my $data = ""; while (read (FH,$data, $buffer) ){ $data .= $data; } &callfunction($var);