Perl guru kerestetik

Keresek egy hozzáértő embert aki meg tudná oldani az alábbi problémát.

Egy MNB árfolyam lekérdezést szeretnék Perlben összehozni. A PHP kód:


$client = new SoapClient("http://www.mnb.hu/arfolyamok.asmx?WSDL");
$result = new SimpleXMLElement($client->GetCurrentExchangeRates()->GetCurrentExchangeRatesResult);
list($eurft) = $result->xpath("//Rate[@curr='EUR']/text()");

Ezt szeretném átülteni Perlre. Megtaláltam a SOAP::WSDL::Client kiterjesztést.


use SOAP::WSDL::Client;
my $soap = SOAP::WSDL::Client->new({proxy => 'http://www.mnb.hu/arfolyamok.asmx?WSDL'});

Hogyan tovább? Lehet, hogy RTFM.

Hozzászólások

http://search.cpan.org/~swalters/SOAP-WSDL-3.003/lib/SOAP/WSDL.pm

Itt itten van minden.

my $result = $soap->call('method', %data);

Gondolom a method "GetCurrentExchangeRates()->GetCurrentExchangeRatesResult", de jo lenne elolvasni a doksijat, hogy milyen methodok vannak. Miket kerdezhetsz le. A %data-t meg kiiratod data_dumperrel. Aztan eldontod mit csinalsz vele.

Nem vagyok perl szaki de SOAP::Lite-al nem lenne könnyebb :


use SOAP::Lite;

$SOAP::Constants::PREFIX_ENV="SOAP-ENV"; # seems to fix random 400 Bad Request from the IIS hosted .NET crap

$soap= new SOAP::Lite  -> service('http://www.mnb.hu/arfolyamok.asmx?WSDL');
print $soap->GetCurrentExchangeRates();


#!/usr/bin/perl

use XML::Simple;
use SOAP::Lite;

$SOAP::Constants::PREFIX_ENV="SOAP-ENV"; # seems to fix random 400 Bad Request from the IIS hosted .NET crap
$soap = new SOAP::Lite->service('http://www.mnb.hu/arfolyamok.asmx?WSDL');
$result = XMLin($soap->GetCurrentExchangeRates(), keyattr => ['curr'] );
$data = $result->{Day}->{Rate}->{EUR}->{content};

Lehet szebben is meg lehet írni, de ez működik.

--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!