On 5/15/07, Jameson C. Burt <[EMAIL PROTECTED]> wrote:

Letting my imagination loose,
I ponder that  qx()  could have a fixed buffer size, which cannot be exceeded;
or Unix takes in a block of size 2^16 but not of size 2^17.
But I am probably only cluttering my mind with possibilities,
when the problem is a simple looking  large-number-of-characters problem.
Any ideas?

It seems that you've stumbled upon an undocumented implementation
limitation. Perl doesn't have too many of those, and it probably
shouldn't have any. Now that you have a test case, I encourage you to
run perlbug to submit it with a request that it be fixed or
documented. (I suspect, though, that the real limitation is in your OS
or shell, rather than Perl; so the only fix will be to the
documentation.)

But what's in the qx``, an entire shell script? Maybe there's a better
way to do whatever you're trying to do.

When a string within qx`` contains shell metacharacters, the string is
passed to /bin/sh on Unix systems. So you're starting a shell, and
giving it a large program to run. The shell is going to launch one or
more other programs. Maybe your program could launch those programs
directly, leaving the shell out of things, and saving that much memory
and time, not to mention bypassing any limitations the shell imposes.

Good luck with it!

--Tom Phoenix
Stonehenge Perl Training

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to