在Perl中没有定义太多变量的方法?

时间:2018-01-27 10:22:16

标签: perl curl

我询问最简单的方法

  1. 获取www内容(我认为是curl)

  2. 使用树正则表达式(s/a/b/;和s / as / da'等)搜索和替换文本

  3. 每次我想要使用Perl命令时,我必须定义变量吗?在bash中,我输出了curl

    的输出
    curl www.google.pl | sed 's/a/b'
    

    我想省略这些$dupa

    $#!/usr/bin/perl
    
    $dupa = `curl -s https://api.binance.com/api/v1/ticker/allPrices`;
    
    $dupa =~ s/"},\{"/\n/g;
    $dupa =~ s/":"/=/g;
    $dupa =~ s/","/\n/g;
    $dupa =~ s/\[{"//g;
    
    print $dupa;
    

1 个答案:

答案 0 :(得分:3)

  1. Perl代码中始终为use strict。没有例外!

  2. 不要向curl发出请求以发出HTTP请求。使用像LWP::Simple这样的Perl模块。

  3. 您下载的数据是JSON。不要把它当作弦来操纵;使用JSON解析器(如JSON::XS)将其转换为数据结构。

  4. 这是一个开始:

    use strict;
    use LWP::Simple qw( get );
    use JSON::XS qw( decode_json );
    use Data::Dumper qw( Dumper );
    
    my $data = decode_json(get("https://api.binance.com/api/v1/ticker/allPrices"));
    
    print Dumper($data);
    

    您现在可以操纵$data变量中的数据结构;例如:

    for my $item (@$data) {
        print "$item->{symbol} : $item->{price}\n";
    }