Thanks Jim for a nice reply, could you explain what push(@$temp_table,$ref->[$i]); is doing. in the first code.
In the second @_= $dbh where as in the if command $_ is getting the values from this default array. Then how it can return \%s..........in the last statement. On Thu, Oct 8, 2009 at 6:54 PM, Jim Gibson <jimsgib...@gmail.com> wrote: > On 10/8/09 Thu Oct 8, 2009 9:00 AM, "Raheel Hassan" > <raheel.has...@gmail.com> scribbled: > > > Hello, > > > > I have problems in understanding $...@$ use ????? > > > > 1- my $ref = $$temp_sth -> fetchall_arrayref({}); > > for(my $i=0; $i <= $...@$ref}; $i++) { > > For any array @a, the largest index is given by $#a. > > $ref is a reference to an array, as returned by the fetchall_arrayref > method. > > @{$ref} is the array returned. > > Therefore, $...@$ref} is the largest index of the returned array, i.e., the > index of the last element of the array. > > > > push(@$temp_table,$ref->[$i]);} > > > > Can some one explain the under given function. > > It looks like a function that queries a database, getting all of the data > from a table called "Sensors". Then for each row in that table, checks the > value of the column labeled "StatusID", and, if the value of that column is > "1", adds an entry to a hash with the contents of the "IP" column as key, > and the value taken from the column "SensorID". The function returns a > list, > consisting of a reference to the hash and the value of the $error variable, > which will be 0 if no error occurred, and 1 if an error did occur. > > > 2- sub buildSensorsHashtable > > { > > > > my ($dbh) = @_; > > my $error = 0; > > > > my $query = "SELECT * FROM Sensors"; > > my $sth = $dbh->prepare($query); > > if(!$sth || !($sth->execute())) { $error = 1 ; > > } > > > > my $ref = $sth->fetchall_arrayref({}); > > my %s; > > my @s = @$ref; > > foreach (@s) > > { > > if($_->{"StatusID"} eq "1") { $s{$_->{"IP"}} = $_->{"SensorID"}; > } > > } > > > > return (\%s,$error); > > > > 3- Which is the best tool for debuging perl programs having CGI support. > I > > used DDD but that does not support CGI. > > Debugging CGI programs can be difficult. You need access to the HTTP logs. > You can help yourself by following the advice given in the FAQ "How can I > get better error messages from a CGI program?" (see 'perldoc -g CGI'). Try > to set up a test environment, either by executing the CGI program from the > command line (by supplying the various parameters needed) or by running the > program first on a local server where you have access to the logs. > > Good luck. > > >