Whenever you use system commands, you will want to make sure you check the exit status. Additionally, the error is stored in $!, and should give you an idea of why things are failing. Try 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")
and die "Unable to compress data: $!\n";
print "Concatenating other data\n";
system("cat ./incoming/data.file ./static/data.file >> outfile")
and die "Unable to cat data: $!\n";
print "Sorting Data File\n";
system("asort outfile clean.data 1 6 8 9")
and die "Unable to sort data: $!\n";
print "Done.\n";
You may also want to use system in a list context, as it is faster and more secure, for example:
system("/path/to/asort","outfile","clean.data","1 6 8 9")
and die "Unable to sort data: $!\n";
Lastly, your for loop isn't very perlish. You may want to try something like this:
open(OUT,">outfile") || die "Unable to open outfile: $!\n";
foreach (@bigfile) {
s/\0/ /g;
print OUT "$_";
}
close(OUT);
Cheers,
Shendal
Update: As
runrig pointed out via the chatterbox, it ought to be
and die after a system, since system returns 0 on success.
Update2: See
merlyn's post
RE: Re: large file issue?. $! is actually
not what you want to look at.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.