in reply to system() on linux/win32

Ah HAH! You're trying to get Windows to spawn a child process. It'll never work!! ...But you can fake it.

Long story short: system("start " . $excel, $excelfilename);

If you want Perl to spawn your Excel process but keep on doing its jiggy Perl-thing, instead of calling Excel yourself, you should tell Windows to do it for you. This is done with the DOS "start" command. Try it out. Bring up a DOS prompt and enter "notepad". It'll come up normal. Close it and enter "start notepad". Same thing. Now here's the interesting part. Put this on the command line:

perl -e "system('notepad'); print 'NaSe77 rules!'"

This will bring up the notepad, but it won't tell you who rules until you close notepad. Finally try this:

perl -e "system('start notepad'); print 'NaSe77 rules the Kingdom of Notepad, baby!'"

The notepad is up, and the print statement functions right away. Instant fake fork. Ain't life grand?

It took me a week and a half of looking for this on Perlmonks when I needed it. I can't remember where I found it, but props to mystery monk who originally posted this solution. -the Pedro Picasso
(sourceCode == freeSpeech)