Jenda,
  Sorry -- I was not quoting my own code precisely and
I am using strict and warnings.
  I am using parenthesis. I attached the exact code
for the subroutine below.


--- Jenda Krynicky <[EMAIL PROTECTED]> wrote:
> From: Richard Heintze <[EMAIL PROTECTED]>
> > After several hours I tracked it down to these
> line of
> > code. The concantenation is failing suddenly!
> > 
> > my $hidden="<table><tr><td>";
> > &FormElements(\$hidden...);
> > 
> > sub FormElements{
> >   my $hidden = @_;
> 
> This line is incorrect.
> 
> >   my $t1 = qq[<input type=text value=mumble>];
> >   $$hidden .= $t1;
> 
> As
>       use strict; 
> would have told you.
> 
> The problem is that the
>       my $hidden = @_;
> sets $hidden to the number of elements in @_. Not to
> the first 
> parameter passed to FormElements().
> 
> So the $$hidden doesn't access the global $hidden
> variable, but a 
> variable whose name is the number.
> 
> Try to print the $hidden inside the subroutine!
> 
> You want either
>       my ($hidden) = @_;
> or
>       my $hidden = shift(@_);
> 
> 
sub FormElements {
  my ($me,
      $next, 
      $ev_count,
      $curr_true, # integer array created in insert
data
      $prob_innoc,
      $prob_guilt,
      $hidden) = @_;
  # The first time we view the Enter Probabilities
page (display) 
  # we have the option of specifing admissibility (the
probability of the evidence being admissible in court)
  # and the probability the fact is true.
  #
  # When there are subsequent assertions or suspects,
there is no need to allow the user to change this
information
  # so we surpress the text edit box.
  #
  my $bReadOnly = !$me->bFirstSuspect(); #
$me->{pass}==0 && $next==1; # Can the user change
this? Yes, if this is the first Suspect/Assertion.
  my $t3 = $me->{admissibility};
  my $admis = sprintf "%3d", $t3->[$ev_count];
  print 
    ($me->bShowAdmissibility()?(qq[
      <TD ALIGN="CENTER" STYLE="font-family:serif;
font-size:18px; font-weight: bold;
background-color:#ffcc00">]
        .($bReadOnly?qq[$admis <INPUT class=debug
READONLY TYPE=TEXT NAME=prob_admis$ev_count SIZE="2"
VALUE="$admis" />]:qq[<INPUT TYPE=TEXT
NAME=prob_admis$ev_count SIZE="2" VALUE="$admis" />])
        ."</TD>"):"");
  print qq[
  <TD ALIGN="CENTER" STYLE="font-family:serif;
font-size:18px; font-weight: bold;
background-color:#ffcc00">];
  # older code: $me->{base_type}=~"Rank" ||
$me->{base_type}=~"RA"  || $me->{base_type}=~"Compare
Assertions"
  # old code: ($me->{base_type} ==
&case_constants::btCompareAssertions ||
$me->{base_type} == &case_constants::btRankSuspects)
  if ($me->MultiSuspectCase() && $bReadOnly){
    # No input box here!
    my $t2 = @{$$curr_true}[$ev_count]; # This is so
wierd. Why do I need to explicitly cast it?
    $t2 = sprintf "%3.3f", ($t2<=0?0:$t2);
    my $t3 = qq[<INPUT class=debug TYPE=TEXT
NAME="prob_true$ev_count" VALUE="$t2" SIZE=2>];
    print $t2.$t3;
    # Why does not this concatenation work? 
    $$hidden = $$hidden.qq[\n<TR
class=debug><TD>prob_true$ev_count</TD><TD>$t3%</TD></TR>\n];
  }
  else {
    # Input box: user can alter this
    print qq[ <INPUT TYPE="TEXT"
ID="prob_true$ev_count"  NAME="prob_true$ev_count"
SIZE="7" OnChange="form_field_OnChange(this);"
MAXLENGTH="6">%</TD> ];
  }
  
  print qq|
  <TD ALIGN="CENTER" STYLE="font-family:serif;
font-size:14px;background-color:#cc9900">
  <INPUT ID="prob_guilt$ev_count"
NAME="prob_guilt$ev_count" SIZE="7" 
OnChange="form_field_OnChange(this);" |;
  if ($me->{pass}!=1){
    print qq|
VALUE="|.($prob_guilt?$prob_guilt:"").qq|" |;
  }
  print qq| MAXLENGTH="6">%</TD>
  <TD ALIGN="CENTER" STYLE="font-family:serif;
font-size:14px;background-color:#cc9900">
    <INPUT TYPE="TEXT" ID="prob_innoc$ev_count" 
OnChange="form_field_OnChange(this);" 
NAME="prob_innoc$ev_count" SIZE="7" |;
  if ($me->{pass}!=1){
    print
qq|VALUE="|.($prob_innoc?$prob_innoc:"").qq|"|;
  }
  print " MAXLENGTH=6>%</TD>\n";
}


__________________________________
Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard
http://antispam.yahoo.com/whatsnewfree

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to