six24hourdays wrote: > On Oct 21, 11:06 am, [EMAIL PROTECTED] (Chas. Owens) wrote: >> On Tue, Oct 21, 2008 at 10:56, David Stiff <[EMAIL PROTECTED]> wrote: >>> >>> There probably is a better approach. >>> I am going through a list of Subversion branch names, e.g. >>> BRANCH_1 >>> BRANCH_1 >>> BRANCH_2 >>> BRANCH_2 >>> BRANCH_3 >>> BRANCH_3 >>> BRANCH_4 >>> BRANCH_4 >>> and checking to see if $branch eq $lastBranch. Then I do something. >>> The problem is that the last time through the loop, e.g. BRANCH_4, >>> nothing happens because the IF never evaluates to true. >> If I understand you correctly then this code should work for you: >> >> #!/usr/bin/perl >> >> use strict; >> use warnings; >> >> #open my $fh, "-|", "svn somehing" >> # or die "could not run 'svn something': $!"; >> >> my $old_branch = ''; >> while (my $new_branch = <DATA>) { #use $fh here instead of DATA >> chomp $new_branch; >> if ($old_branch eq $new_branch) { >> print "doing stuff to $new_branch\n"; >> } >> $old_branch = $new_branch; >> >> } >> >> __DATA__ >> BRANCH_1 >> BRANCH_1 >> BRANCH_2 >> BRANCH_2 >> BRANCH_3 >> BRANCH_3 >> BRANCH_4 >> BRANCH_4 >> >> -- >> Chas. Owens >> wonkden.net >> The most important skill a programmer can have is the ability to read. > > This works if there are 2 of each branch (as in the example). If there > are more then the IF condition is true more times than I want. I only > want a condition to be true for the transition to a new branch. Then I > email the branch owner with the list. > > Right now I am just pushing a dummy entry onto the end of the list so > my IF condition (if $branch ne $lastBranch) is true at the transition.
I'm sure what Chas mean was this if ($old_branch ne $new_branch) { print "doing stuff to $new_branch\n"; } which works fine. If you prefer you could use a hash, which is the classical way to determine whether a data item has been seen already. Use a loop like this. my %branches; while (my $name = <DATA>) { chomp $name; next if $branches{$name}++; print "doing stuff to $name\n"; } HTH, Rob -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/