http://qs321.pair.com?node_id=182432


in reply to loop inside system command

I got this to work:
my $command_line = ""; my $first_build = "hi.bld"; my @other_builds = qw( low.bld hello.bld cow.bld ); $command_line = "c:\\execu $first_build"; $command_line .= " " . shift @other_builds while (@other_builds); $command_line .= " file.c"; print "$command_line\n"; system "$command_line\n";


Hope it helps.
cidaris

Replies are listed 'Best First'.
Re: Re: loop inside system command
by RMGir (Prior) on Jul 17, 2002 at 15:07 UTC
    Interesting, cidaris. But have you ever used the join command?

    It would save you your loop on "while(@other_builds)".

    $command_line = "c:\\execu $first_build "; # note trailing space $command_line .= join " ", @other_builds; $command_line .= " file.c";
    The only downside here is that you wind up with 2 spaces between $first_build and file.c if there are no other_builds.

    The problem goes away if you do everything in a join:

    $command_line .= join " ", ("c:\\execu $first_build",@other_builds,"fi +le.c");

    --
    Mike