in reply to Re(2): (Ovid): uninitialized value in concatenation
in thread uninitialized value in concatenation

Please explain how I can eliminate some of the complexity.
  • Comment on Re: Re(2): (Ovid): uninitialized value in concatenation

Replies are listed 'Best First'.
Re: (4): uninitialized value in concatenation
by dmmiller2k (Chaplain) on Jan 14, 2002 at 23:43 UTC

    To start with, you could eliminate redundancies (as I've tried to demonstrate by refactoring your code), and encapsulate data dependencies in a data structure, to the degree possible (see my %parent_hash in my snippet), rather than if statements.

      I have taken your code and put in my script it works the problem I am having is somehow it does not recognize who the parent is and give send it to $name.
      # store subparent for each parent my %parent_hash = ( 'Father' => 'Mother', 'Mother' => 'Father' ); if (exists $parent_hash{$parent}) { my $sub_parent = $parent_hash{$parent}; for my $col ( $parent, $sub_parent ) { my $sql = "select $col from Roster where User=?"; my $rv = $dbh->selectcol_arrayref( $sql, undef, $user ); if ( @$rv ) { # any rows returned? $name = $rv->[0]; # take first one last; } } } foreach $date ( @volunteer_date ) { $sth = $dbh->prepare ("select distinct Volunteer from Voluntee +r where Volunteer = \'$name\' and Date = \'$date\'"); $sth->execute (); my $chk = $sth->fetchrow_array; #Verify the parent is not signed up. if ($chk eq $name){ print $query->h1({-align=>'center'}, "You are already signed u +p for this date: $date"); } #end if statement #process the information and update the schedule. else{ $sth = $dbh->prepare ("select max(Number) from Volunteer where Date = '$date' and Volunteer = 'TBD'"); $sth->execute (); my $number = $sth->fetchrow_array; $sth = $dbh->prepare ("update Volunteer set Volunteer = '$name' where Date = '$date' and Volunteer = 'TBD' and Number = $number "); $sth->execute (); print $query->h1({-align=>'center'}, "You signed up for this d +ate $date")