#!/usr/bin/perl use DBI; # Changed after advice from jeffa my %conf = ( db_type => 'mysql', db_name => 'new_db', db_user => 'root', db_pass => '****', table => 'profile', ); my $dbh = DBI->connect("DBI:$conf{db_type}:$conf{db_name}", $conf{db_user}, $conf{db_pass}, {PrintError => 0, RaiseError => 0}); create_database(); create_table(); describe_table(); sub create_database { $dbh->do("DROP DATABASE $conf{db_name}") || warn("Warning (expected): Can't drop db '$conf{db_name}': $DBI::errstr"); $dbh->do("CREATE DATABASE $conf{db_name}") || die("Can't create database '$conf{db_name}': $DBI::errstr"); } sub create_table { $dbh->do("USE $conf{db_name}") || die("Can't use database '$conf{db_name}': $DBI::errstr"); $dbh->do("CREATE TABLE $conf{table} (" . 'name varchar(255) not null, ' . 'age int, ' . 'birthday varchar(255) not null, ' . 'school varchar(255) not null)') || die("Can't create table '$conf{table}': $DBI::errstr"); } sub describe_table { # I'm trying to get it to print out the table's # structure (the sort you see when you type # 'DESCRIBE table_name' in mysql. } $dbh->disconnect(); # Success. print "Success\n"; exit(0);