use SQL::Statement; use Data::Dumper; my $sql = " SELECT * from foo where bar > 1923 "; my $parser = SQL::Parser->new(); my $stmt = SQL::Statement->new($sql,$parser); printf "Command %s\n",$stmt->command; printf "Columns %s\n",join',',map{$_->name} $stmt->columns; printf "Tables %s\n",join',',map{$_->name} $stmt->tables; print "Where operator\n",Dumper($stmt->where); #### Command SELECT Columns * Tables FOO Where operator $VAR1 = bless( { 'arg2' => '1923', 'arg1' => bless( { 'table' => 'FOO', 'name' => 'BAR' }, 'SQL::Statement::Column' ), 'neg' => 0, 'op' => '>' }, 'SQL::Statement::Op' );