http://www.perlmonks.org?node_id=38449

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

this is the first time I'm posting a question, so I apologize if my etiquette isn't quite right...

I am performing a simple search-and-replace on a large file - a very large file - already in an array and writing out to a new file. Then, I have a few system() statements that manipulate files. The problem is, my program seems to be skipping my system() statements. My instinct tells me it is because of the file size, but I don't know how to fix it. My code looks like something like this:
open(OUT,">outfile") || die; for($i=0;$i<=$#bigfile;$i++){ $bigfile[$i] =~ s/\0/ /g; print OUT "$bigfile[$i]"; } close(OUT); print "Compressing original file\n"; system("compress original.file"); print "Concatenating other data\n"; system("cat ./incoming/data.file ./static/data.file >> outfile"); print "Sorting Data File\n"; system("asort outfile clean.data 1 6 8 9"); print "Done.\n";


The odd thing is that it performs the print statements correctly, but the system statements are all skipped. Any ideas? (part of the reason my instinct tells me that it is filesize is that it has worked fine for the entire year up until now - and that's the only variable I can think of that may affect this)