> I am using the following code and keep getting a message that 
> says "Can't use an undefined value as a hash reference."  I'm 
> completely lost trying to debug it because the line in 
> question is a }.  I was wondering if any guru could spot some 

There are many references , what line number does it say 
is evil and which line below is that?

DMuey

> newbie idiocy in my code.  I am, of course, using strict and warnings.
> 
> Thanks in advance!
> 
> Dan
> 
>   sub get_mysql_SQL {
>     my $self = shift (@_);
>     my $line = shift (@_);
>     my $debugger = $self->{debugger};
>     if ($self->{info_mode}) {
>       $debugger->warning("We've entered get_mysql_SQL");
>     }
>     if (not $line) { $debugger->fatal_error("There was no 
> line in the [EMAIL PROTECTED] array..."); }
>     my @temp = split ':', $line;
>     my $action = shift (@temp);
>     my $SQL = "";
>     if ($action =~ m/create/i) {
>       my $table_name = shift (@temp);
>       my @columns;
>       while ($_ = shift (@temp)) {
>         my $temp3 = {
>                     name => $_,
>                     type => shift (@temp),
>                     options => [split (';', (shift (@temp)))]
>                    };
>         push @columns, $temp3;
>         $SQL .= "CREATE TABLE $table_name\n";
>         $SQL .= "(\n";
>         while (my %hash = %{ shift (@columns) }) {
>           $SQL .= "  $hash{name} ";
>           if ($hash{type} =~ m/INT/i) {
>             $SQL .= "INT ";
>           }
>           elsif ($hash{type} =~ m/VARCHAR/i) {
>             $SQL .= "VARCHAR(80) ";
>           }
>           elsif ($hash{type} =~ m/DATE/i) {
>             $SQL .= "DATE ";
>           }
>           elsif ($hash{type} =~ m/LOB/i) {
>             $SQL .= "BLOB ";
>           }
>           elsif ($hash{type} =~ m/TEXT/i) {
>             $SQL .= "LONGTEXT ";
>           }
>           elsif ($hash{type} =~ m/BOOL/i) {
>             $SQL .= "BIT ";
>           }
>           else {
>             $debugger->fatal_error("Data Type: $hash{type} unknown.");
>           }
> 
>           my @options = @{ $hash{options} };
>           while ($_ = shift (@options)) {
>             if ($_ =~ m/not null/i) {
>               $SQL .= "NOT NULL ";
>             }
>             elsif ($_ =~ m/unique/i) {
>               $SQL .= "UNIQUE ";
>             }
>             elsif ($_ =~ m/primary key/i) {
>               $SQL .= "PRIMARY KEY";
>             }
>             elsif ($_ =~ m/auto increment/i) {
>               $SQL .= "AUTO_INCREMENT ";
>             }
>             else {
>               $debugger->error("Option: $_ is not known.  
> Assuming it's database specific and ignoring.");
>             }
>           }
>           $SQL .= "\n";
>         }
>       }
>       $SQL .= ");\n\n";
>       return $SQL;
>       }
>     else {
>       $debugger->fatal_error("Action $action is unknown to 
> get_mysql_SQL.");
>     }
>   }
> 
> 
> -- 
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

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

Reply via email to