in reply to Re: Best way to execute a set of commands in perl
in thread Best way to execute a set of commands in perl

I seem to get the following error when try to use a if statement along with qq?Can someone please advise?

ERROR:- syntax error at perl.pl line 63, near "qq(p4 -x "$options{f}" delete) +if" Execution of Qdepot_upload.pl aborted due to compilation errors. system($_) for qq(p4 sync -k "$options{v}"), qq(p4 -x "$options{f}" delete) if (exists $options{f}), qq(p4 -x "$options{a}" add) if (exists $options{a}),

Replies are listed 'Best First'.
Re^3: Best way to execute a set of commands in perl
by cdarke (Prior) on Mar 12, 2011 at 16:54 UTC
    This is a fairly obfuscated syntax you are trying to use, in my opinion. I can't really see the point in the for loop unless you have a large number of commands to execute. If that is the case, then I suggest that:
    my @cmds; push @cmds,qq(p4 sync -k $options{v}); push @cmds,qq(p4 -x $options{f} delete) if (exists $options{f}); push @cmds,qq(p4 -x $options{a} add) if (exists $options{a}); system($_) for @cmds;
    might be clearer.

    Otherwise, if you simply want to execute just those commands you show, then why not Keep It Simple, Sir?
    system(qq(p4 sync -k $options{v})); system(qq(p4 -x $options{f} delete)) if (exists $options{f}); system(qq(p4 -x $options{a} add)) if (exists $options{a});
    By the way, I suspect that no one replied to this question because they did not know you asked a new one. I only looked because I wanted to see if there was a response. Probably better to do a new post in future.