in reply to How to execute multiple commands through perl script

Rhetorical Question: What's different between the two examples? My Answer: You lost your quote marks around the command being sent to cmd /k, so the && was being processed by the system-level cmd.exe rather than the embedded one.

Here, I will use the qq{} double-quote notation to nest the quotes, so interpolation will still happen properly:

my $cmd = "perl Perl_Ex_1.pl"; system(qq{start cmd /k "cd c:\PerlExamples && $cmd"});

Thus, system runs the whole command (everything within the qq{}), and cmd /k runs everything in the normal quote characters (so both the cd and the $cmd).

update: edited first paragraph for clarity

Replies are listed 'Best First'.
Re^2: How to execute multiple commands through perl script
by Anonymous Monk on Oct 04, 2016 at 20:05 UTC

    Thank you very much. This works. I also had to change my path name to c:\\PerlExamples as it was trying to read \P as an escape sequence.