#!/usr/bin/perl use utf8; use warnings; use Encode; use File::Slurp; use YAML; my $i = 0; my %result; while (my $file = <*>) { my @lines = read_file($file); @lines = map {decode('euc-jp', $_)} @lines; next unless (grep /[^<]*雇い[^<]*</, @lines); for my $line (grep /^<dt>/, @lines) { my $yatoi = 0; if ($line =~ /雇われ/) { $yatoi = '雇われたい' } elsif ($line =~ /雇い/) { $yatoi = '雇いたい'; } else { next; } $line =~ />(\d+)<\/a>/; my $num = $1; my %l = ( '立場' => $yatoi, 'number' => $num, ); while ($line =~ s/【([^】]+)】([^<【]+)//) { my $k = $1; my $v = $2; $v =~ s/^[\s ]+//; $v =~ s/[\s ]+$//; $l{$k} = $v; } if (grep /日時/, keys %l) { push @{$result{$file}}, \%l; $i++; } } } warn $i; print Dump \%result;