.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "AnyData::Format::HTMLtable 3pm" .TH AnyData::Format::HTMLtable 3pm "2015-01-28" "perl v5.20.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" HTMLtable \- tied hash and DBI/SQL access to HTML tables .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 6 \& use AnyData; \& my $table = adHash( \*(AqHTMLtable\*(Aq, $filename ); \& while (my $row = each %$table) { \& print $row\->{name},"\en" if $row\->{country} =~ /us|mx|ca/; \& } \& # ... other tied hash operations \& \& OR \& \& use DBI \& my $dbh = DBI\->connect(\*(Aqdbi:AnyData:\*(Aq); \& $dbh\->func(\*(Aqtable1\*(Aq,\*(AqHTMLtable\*(Aq, $filename,\*(Aqad_catalog\*(Aq); \& my $hits = $dbh\->selectall_arrayref( qq{ \& SELECT name FROM table1 WHERE country = \*(Aqus\*(Aq \& }); \& # ... other DBI/SQL operations .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module allows one to treat the data contained in an \s-1HTML\s0 table as a tied hash (using AnyData.pm) or as a \s-1DBI/SQL\s0 accessible database (using DBD::AnyData.pm). Both the tiedhash and \s-1DBI\s0 interfaces allow one to read, modify, and create \s-1HTML\s0 tables from perl data or from local or remote files. .PP The module requires that \s-1CGI,\s0 HTML::Parser and HTML::TableExtract are installed. .PP When reading the \s-1HTML\s0 table, this module is essentially just a pass through to Matt Sisk's excellent HTML::TableExtract module. .PP If no flags are specified in the \fIadTie()\fR or \fIad_catalog()\fR calls, then TableExtract is called with depth=0 and count=0, in other words it finds the first row of the first table and treats that as the column names for the entire table. If a flag for 'cols' (column names) is specified in the \fIadTie()\fR or \fIad_catalog()\fR calls, that list of column names is passed to TableExtract as a headers parameter. If the user specifies flags for headers, depth, or count, those are passed directly to TableExtract. .PP When exporting to an HTMLtable, you may pass flags to specify properties of the whole table (table_flags), the top row containing the column names (top_row_flags), and the data rows (data_row_flags). These flags follow the syntax of \s-1CGI\s0.pm table constructors, e.g.: .PP .Vb 5 \& print adExport( $table, \*(AqHTMLtable\*(Aq, { \& table_flags => {Border=>3,bgColor=>\*(Aqblue\*(Aq}; \& top_row_flags => {bgColor=>\*(Aqred\*(Aq}; \& data_row_flags => {valign=\*(Aqtop\*(Aq}; \& }); \& \& The table_flags will default to {Border=>1,bgColor=>\*(Aqwhite\*(Aq} if none \& are specified. \& \& The top_row_flags will default to {bgColor=>\*(Aq#c0c0c0\*(Aq} if none are \& specified; \& \& The data_row_flags will be empty if none are specified. \& \& In other words, if no flags are specified the table will print out with \& a border of 1, the column headings in gray, and the data rows in white. \& \& CAUTION: This module will *not* preserve anything in the html file except \& the selected table so if your file contains more than the selected table, \& you will want to use adTie() or $dbh\->func(...,\*(Aqad_import\*(Aq) to read the \&table and then adExport() or $dbh\->func(...,\*(Aqad_export\*(Aq) to write \& the table to a different file. When using the HTMLtable format, this is the \& only way to preserve changes to the data, the adTie() command will *not* \& write to a file. .Ve .SH "AUTHOR & COPYRIGHT" .IX Header "AUTHOR & COPYRIGHT" copyright 2000, Jeff Zucker all rights reserved