I don't think this has anything to do with Perl.
All of your I/O comes through the shell. You are basically running a shell script to generate the file. There are some things I would look at for possible differences though:
- Which shell is invoked by default? Is it the same shell?
- Encoding differences. Is the same encoding happening? Do the files look the same in a hex editor?
- iconv might show something interesting.
However what happens beyond within system call is OS dependent, not Perl dependent. There is really very little room for this to be solved as a Perl issue. What I would recommend doing is put the commands in a shell script and invoke that. If it works in the shell script but not from Perl, I would then start checking environment variables, etc.