Right, so here's the patch, since this automated email thing didn't work.
--- lib/Finance/Currency/Convert/XE.pm 2012-06-19 09:50:00.000000000 -0400
+++ /usr/lib/perl5/site_perl/5.10.0/Finance/Currency/Convert/XE.pm 2012-07-17 13:58:32.000000000 -0400
@@ -315,22 +315,24 @@
my $tag;
my $p = HTML::TokeParser->new(\$html);
- # look for the faq link
- while(1) {
- return unless($tag = $p->get_tag('a'));
- last if(defined $tag->[1]{href} && $tag->[1]{href} =~ /faq/);
- }
-
- # jump to the next table
- $tag = $p->get_tag('table');
-
- # from there look for the target value
- while($p->get_token) {
- my $text = $p->get_trimmed_text;
-
- if(my ($value) = $text =~ /([\d\.\,]+) $self->{code}/) {
- $value =~ s/,//g;
- return sprintf $self->{string}, $value;
+ # first look for the 'td' element
+ while (1) {
+ return unless ($tag = $p->get_tag('td'));
+ next unless (defined($tag->[1]{'align'}) && ($tag->[1]{'align'} eq 'left'));
+ # this will probably be the value
+ my $value = $p->get_trimmed_text;
+
+ # then make sure this has the 'span' with the target
+ # currency code
+ my $tag2 = $p->get_tag('span');
+ my $cd = $p->get_trimmed_text;
+ if (defined($tag2) && defined($tag2->[1]{'class'} && $tag2->[1]{class} eq 'uccResCde'
+)) {
+ if ($cd eq $self->{code}) {
+ # found it, return
+ $value =~ s/,//g;
+ return sprintf $self->{string}, $value;
+ }
}
}