[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Omaha.pm] $ids[$i++]
Andy Lester wrote:
But now my C++ mid-term I just took last night has me thinking like this:
my $i = 0;
foreach my $single_reason (split /\|/, $reason) {
my $id = $ids[$i++];
Why do you want to know where in the array you are? Should you be
avoiding the loop index entirely?
Here is more context. (80% of the real but irrelevant code has been removed)
# We need the list of all IDs first so we can set related_uniform_ids
# to all IDs on each ticket.
my @ids = (get_id($dbh));
foreach (split /\|/, $reason) {
push @ids, ($ids[-1] + 1);
}
pop @ids;
my $i = 0;
foreach my $single_reason (split /\|/, $reason) {
my $id = $ids[$i++];
my $uniform = Model::MySQL::Simple::uniform->new(Globals=>$Globals);
$uniform->set_id($id);
$uniform->set_related_uniform_ids(join "|", @ids);
$uniform->commit(filter=>"id = '$id'");
}
my $url = $q->url();
$url.="?dowhat=success&id=" . (join "|", @ids);
print $q->redirect("$url");
I'm creating a set of entries in the "uniform" table of our database. I
don't know how many I'm creating -- that depends on how many reasons
there are in the pipe-delimited list stored in $reason.
Each row in the table needs a unique ID, but I also want a pipe
delimited list of all of the IDs I'm creating set into the
related_uniform_ids attribute of every row.
So, first I create @ids. Then I loop again. $i grabs the individual ID
for each ticket.
I 'spose I could re-write it to be more readable, but it's probably not
bad enough to invest the time and re-test it.
j
guilty as charged :)