小白请教windows下怎么安装JSON::XS

soundwater
DeepBlue 03月25日 字数 127

hello 大家好,

小白请教windows下怎么安装JSON::XS

用PPM还是cpan?

perl的版本号是否有要求啊?

多谢啊?

(PPM和cpan都测试安装失败TT)

Perl Perl的世界
3 个回复
xerox51
enhanced32 03月27日

ppm是active perl带的,现在貌似没有了。

windows下cpan安装得用dmake,你找个dmake,才能cpan安装。

并且也不会那么顺利,毕竟不是Linux环境。

为了速度快,建议cpan换源,否则下载一个大的包,一小时都有可能。

soundwater
DeepBlue 03月29日

好像是的。。。

谢谢了

【 在 xerox51 的大作中提到: 】

: ppm是active perl带的,现在貌似没有了。

: windows下cpan安装得用dmake,你找个dmake,才能cpan安装。

: 并且也不会那么顺利,毕竟不是Linux环境。

: ...................

xerox51
enhanced32 03月31日

我在JSON::XS的文档里看到了这样一段话,不知道你注意了没。

# Note that JSON version 2.0 and above will automatically use JSON::XS

# if available, at virtually no speed overhead either, so you should

# be able to just:

use JSON;

# and do the same things, except that you have a pure-perl fallback now.

我最近也使用过Perl的JSON包来爬信息,不知道你是不是只用到这个程度

贴代码:

use JSON;

use Encode;

use LWP::Simple;

use Excel::Writer::XLSX;

use utf8;

use POSIX qw(strftime);

my $abc = 'http://10.push2.eastmoney.com/api/qt/clist/get?pn=1&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152';

my $data = get $abc;

my $temp = decode_json($data);

my $sum = $temp->{'data'}->{'total'};

my $url = 'http://10.push2.eastmoney.com/api/qt/clist/get?pn=1&pz='.$sum.'&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152';

my $content = get $url;

my $obj = decode_json($content);

my $t = strftime "%Y%m%d%H%M%S", localtime;

my $workbook = Excel::Writer::XLSX->new('shanghaistockexchange'.$t.'.xlsx');

$worksheet = $workbook->add_worksheet();

@name = ('股票名称', '股票代码', '最新价','跌涨幅','跌涨额','成交量','成交额','振幅','换手率','市盈率','量比','最高','最低','今开','昨收');

$name_ref = \@name;

$worksheet->write_row(0,0,$name_ref);

my $i = 1;

for my $item(@{$obj->{'data'}->{'diff'}}){

my @array;

$array[0] = $item->{'f14'};#股票名称

$array[1] = $item->{'f12'};#股票代码

$array[2] = $item->{'f2'}; #最新价

$array[3] = $item->{'f3'} eq '-' ? '-' : $item->{'f3'}."%"; #跌涨幅

$array[4] = $item->{'f4'}; #跌涨额

$array[5] = $item->{'f5'}; #成交量

$array[6] = $item->{'f6'}; #成交额

$array[7] = $item->{'f7'} eq '-' ? '-' : $item->{'f7'}."%"; #振幅

$array[8] = $item->{'f8'} eq '-' ? '-' : $item->{'f8'}."%"; #换手率

$array[9] = $item->{'f9'}; #市盈率

$array[10] = $item->{'f10'}; #量比

$array[11] = $item->{'f15'};#最高

$array[12] = $item->{'f16'};#最低

$array[13] = $item->{'f17'};#今开

$array[14] = $item->{'f18'};#昨收

$array_ref = \@array;

$worksheet->write_row( $i, 0, $array_ref );

$i++;

}

$workbook->close();

【 在 soundwater 的大作中提到: 】

: 好像是的。。。

: 谢谢了