The first thing I would add, and leave in place is
system(" cat $file | sort -t\\| +1 -2 > $file.out ") or warn "sort fai
+led $!\n";
Also, you said that "I tried -w". Is there some reason that you don't leave -w on all the time?
The second thing I notice, though my memory of *nix is sketchy is that you are starting 2 processes and using a pipe when 1 process, no pipe would be fine.
system("sort -t\\| +1 -2 <$file > $file.out ") or warn "sort failed $!
+\n";
Actually I am fairly sure that you don't even need the '<' infront of the filename but my memory ain't what it once was.
Some other possibilities
- Try using the full path to sort (/usr/bin/sort?). Maybe you were picking up a copy of the sort binary through a symbolic link or environment variable and one or the other has changed or gone away?
- Try prefixing your filenames with a relative (./file) or absolute path? Not really sure why I suggest this. I just remember doing that a lot in my *nix time when things didn't seem to work without.
- Finally, a silly one, but you wouldn't be the first person to have been caught out by it. Are you subject to a diskquota limit? Do you have enough freespace to create the output file whilst the input file still exists?
What happens if you issue the sort command as you have it immediately after the program has run? If it works as expected then, that will eliminate several possiblities.
Cor! Like yer ring! ... HALO dammit! ... 'Ave it yer way! Hal-lo, Mister la-de-da. ... Like yer ring!
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.