#!/usr/bin/perl use strict; use XML::Simple; use Data::Dumper; use CGI qw/:all/; print header('text/html'); print <<__STYLE__ __STYLE__ ; my $tv = XMLin('raw.xml'); # channel names & global channel info - array of hashes # can xref with programs by key: blebid my $chan_names = $tv->{xmltvid}; # generate cross-referencing hash my $chan_names = $tv->{xmltvid}; # generate cross-referencing hash my %xmltvid; foreach my $chan (@$chan_names) { $xmltvid{$chan->{content}} = $chan->{blebid}; } # programs on BBC 1 - ref to array of hashes [example] # my $channel = $tv->{channel}->{$xmltvid{'BBC 1'}}->{programme}; # &all_shows($channel, 'BBC 1'); print "
', Dumper $tvref, ''; foreach my $chan (keys %xmltvid) { # my $chan = 'BBC 1'; my $chanref = $tvref->{channel}->{$xmltvid{$chan}}->{programme}; print "
", Dumper $chanref, "\n"; my $i = 0; foreach my $prog (@$chanref) { if (substr($prog->{start}, 0, 2) == $hour) { print '
', $prog->{start}, '-', $prog->{end}, ' | ', "$prog->{title}",
" |