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/