in reply to Loop Control

It looks to me like the only difference between your two "blocks" is that when $i == 0 you want your print statement done without a slash, and otherwise it has a slash. Correct? In that case, I'd limit the test to that particular line:

print "$a[$i]", ( $i ? '/' : '' ), "$c1[$w]";

Then the rest of your block doesn't need to be duplicated at all.

Aaron B.
Available for small or large Perl jobs; see my home node.

Replies are listed 'Best First'.
Re^2: Loop Control
by slugman (Novice) on Jul 06, 2012 at 00:05 UTC
    Yes, that is true Aaron. Thank you for the clever answer! I'm not quite sure how it works, so I'll have to run this in a few test scripts.. Your feedback is greatly appreciated :)

      You're welcome. The confusing part there might be the ternary operator, which you can learn more about in perlop, under Conditional Operator. It's more-or-less an if-then-else conditional, but since it's a single expression, it's easier to plug into a print statement like that. If Perl didn't have it, I'd probably do the same thing with something like this:

      { # start a block to limit the va +riable's scope my $maybe_a_slash = ''; # default to no slash $maybe_a_slash = '/' if $i; # make it a slash if counter ha +s incremented print "$a[$i]$maybe_a_slash$c1[$w]"; } # end the block

      Aaron B.
      Available for small or large Perl jobs; see my home node.