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. |