> 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]