use strict; use warnings; use CGI; use List::Util qw(max); use lib "C:/Documents and Settings/Dawn/My Documents/fantasy/files/perl/lib"; use Base::HTML qw(start_html end_html line); use Base::GetDir qw(data_directory); use Base::CSV::Hash qw(get_hash); my %movies; my %movies_data = ( 'csv' => data_directory("Movies")."movies.csv", 'headings' => [qw(id title first_year last_year wiki amg imdb tvcom flixster genre theme type own)], ); get_hash(\%movies,\%movies_data); my %text_inputs = ( general => [qw(id title first_year last_year genre theme)], external_links => [qw(wiki amg imdb tvcom flixster)], ); my %radio_lists = ( type => [qw(film miniseries television_program)], own => [qw(blue-ray dvd vhs)], ); sub title_length { my @lengths; for my $movie (keys %movies) { push @lengths, length($movies{$movie}{title}); } my $length = max(@lengths); return $length; } start_html('','','no'); line(3,qq(
)); end_html(); ####
sub tab {
my ($var) = @_;
return ("\t") x $var;
}
sub line {
my ($tab,$var) = @_;
print tab($tab).$var."\n";
}
####
package Base::CSV::Hash;
use strict;
use warnings;
use base 'Exporter';
our @EXPORT_OK = qw(get_hash);
sub open_file {
my ($file) = @_;
open(my $fh, $file) or die("can't open $file $!");
my @lines = <$fh>;
chomp(@lines);
return @lines;
}
sub get_hash {
my ($hash,$data_hash) = @_;
my @data = open_file($data_hash->{csv});
for my $value (@data) {
my @inner_array = split(/\|/,$value);
my $n = 0;
for my $heading (@{$data_hash->{headings}}) {
$$hash{$inner_array[0]}{$heading} = $inner_array[$n];
++$n;
}
}
}
1;