- #!/usr/bin/env perl
- use strict;
- use warnings;
- use autodie;
- use Data::Dump;
- my $str = '';
- my @time_table;
- while ( my $buf = <DATA> ) {
- $str .= $buf;
- if ($str =~ s/
- <div\s+[^>]*class=['"]\s*event-time\s+calendar-\d+\s*['"][^>]*>\s*
- (\d\d?):(\d\d?) \s*-\s* ((\d\d?):(\d\d?))? \s*<\/div>
- |
- <p\s+[^>]*class=['"]\s*(description|summary)\s*['"][^>]*> (.*) <\/p>
- //sx
- )
- {
- if ( defined $1 ) {
- push @time_table, { 'hh_s' => $1, 'mm_s' => $2 };
- }
- if ( defined $4 ) {
- push @time_table, { 'hh_f' => $4, 'mm_f' => $5 };
- }
- if ( defined $6 ) {
- push @time_table, { $6 => $7 };
- }
- }
- }
- ddx 0 + @time_table => @time_table;
- __DATA__
- <div class="event-time calendar-1">12:45 -
- 14:00</div>
- <div class="event-time calendar-1">12:46 -
- </div>
- <div class="event-time calendar">12:47 -
- 14:01</div>
- <div class="something else entirely">The time is now
- 05:46</div>
- <p class="summary">abcd efgh</p>
- <p class="description">ijkl mnop</p>