Con Mojolicius lo puedes resolver incluso en una sola línea:
Using bash Syntax Highlighting
$ perl -Mojo -E '$res = g("https://estadisticas.bcrp.gob.pe/estadisticas/series/api/PN01234PM/json/2020-3/2020-3/esp")->body; utf8::encode($res); $json = j($res); say $json->{periods}[0]{values}[0]'
3.49136363636364
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Yo veo un fallo en la respuesta: no indica en qué codificación está.
Entonces, supondremos que la respuesta está en utf8. Lo que haces es, después de obtener (g) el cuerpo (body) de la respuesta, lo pasamos por la función utf8::encode(), que "codifica" la cadena $res como una cadena en formato utf8. Luego, interpretamos la cadena $res como un fuente JSON (j) y obtenemos una estructura Perl ($json). Sólo queda acceder al dato dentro de esa estructura.
Como complemento, aquí está el resultado de la respuesta en formato estructura de datos (say Dumper $json):
Using text Syntax Highlighting
$VAR1 = {
'config' => {
'series' => [
{
'dec' => '3',
'name' => "Tipo de cambio de las principales monedas - promedio del per\x{ed}odo (S/ por UM) - D\x{f3}lar Americano (US\$)"
}
],
'title' => "Tipo de cambio de las principales monedas - promedio del per\x{ed}odo (S/ por UM)"
},
'periods' => [
{
'name' => 'Mar.2020',
'values' => [
'3.49136363636364'
]
}
]
};
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4