process '//tr[4]/td[2]',
の部分を、を
process '//tr[4]//td[2]',
にしてみても同じでしょうか?
回答ありがとうございます。スラッシュを一つ追加するってことですね。
明日、早速やってみます。
参考にならないかもしれませんが、補足説明です。
実行するときは、テキストファイルに貼り付けて、testなどといった名前のファイルにしてコマンドプロンプトで実行しています。
perl test.pl
my $result = $scraper->scrape( ... )
で$resultにはハッシュリファレンスが入っているのでprintしただけだとHASH(0x32db38c)などと表示されます。
CPANのYAMLモジュールをインストールしてDumpすればリファレンスの中身を展開して出力できます。
具体的には
use YAML;
を追加して
binmode STDOUT, ":utf8"; print YAML::Dump $result;
をprintの代わりにする。
ありがとうございます!
いただいたヒントに加えて、
use encoding "shiftjis"; を追加することで、
思ったものに近いものが出るようになりました!
ただ、まだエラーが一種類だけ繰り返しでます。
"\x{00a0}" does not map to shiftjis at test3.pl line 21.
21行目は今加えた
print YAML::Dump $result;
です。