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.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.