Simple formatted output of sql describe(describe tables) for all tables in a db.

Question from this little exercise: Anyway to "pass" formats? Are they like filehandle refs?
#!/usr/local/bin/perl use Date::Manip; use DBI; main(); sub main { my ($table,$field,$type,$n,$key,$def,$ex) = @$row; my $dbase="dbName"; my $user="userName"; my $pass="passWord"; my $db = DBI->connect ("dbi:mysql:$dbase", "$user","$pass"); my $firstLine="header - 1st line"; my $secondLine="header - 2nd line"; my $date = UnixDate("today","%B %e, %Y"); #############<FORMAT DEFS> format STDOUT_TOP = @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $firstLine @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< $secondLine Last Modified: @<<<<<<<<<<<<<<<<<<<<<<< $date PAGE: @<<<<<< $% . format TABLEHEADER = ---------------------------------------------------------------------- +--------- Field Type Null Key Default Ex +tra ---------------------------------------------------------------------- +--------- . format STDOUT = @<<<<<<<<<<< @<<<<<<<<<<<<< @<<<<<<< @<<<<<<<< @>>>>>> @|||||| +|||||||| $field, $type $n $key $def $ex ---------------------------------------------------------------------- +--------- . format TABLE = @||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +|||||||||| $table . format NEWLINE = . format ENDTABLE = ---------------------------------------------------------------------- +--------- . #####################</FORMAT DEFS> my $std = select (STDOUT); my $tableRefs = getData ($db, "show tables"); foreach my $tab (@$tableRefs) { $~=TABLE; $table = "TABLE: $$tab[0]"; write TABLE; $~=NEWLINE; write NEWLINE; $~=TABLEHEADER; write TABLEHEADER; $~=STDOUT; my $rowRefs = getData ($db, "describe $$tab[0]"); foreach my $row (@$rowRefs) { ($field,$type,$n,$key,$def,$ex) = @$row; write STDOUT; } $~=ENDTABLE; write ENDTABLE; $~=NEWLINE; write NEWLINE; } $db->disconnect(); } sub getData { my ($db,$sql)=@_; my $query=$db->prepare("$sql"); $query->execute(); my $rows = $query->fetchall_arrayref(); $rows; }

In reply to dbDescribe.pl by abaxaba

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.