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 PicassoIn reply to Re: system() on linux/win32
by Pedro Picasso
in thread system() on linux/win32
by NaSe77
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |