解析大(100 Mb)XML文件时出现" Out of memory " 错误
use strict;
use warnings;
use XML::Twig;
my $twig=XML::Twig->new();
my $data = XML::Twig->new
->parsefile("divisionhouserooms-v3.xml")
->simplify( keyattr => []);
my @good_division_numbers = qw( 30 31 32 35 38 );
foreach my $property ( @{ $data->{DivisionHouseRoom}}) {
my $house_code = $property->{HouseCode};
print $house_code, "\n";
my $amount_of_bedrooms = 0;
foreach my $division ( @{ $property->{Divisions}->{Division} } ) {
next unless grep { $_ eq $division->{DivisionNumber} } @good_division_numbers;
$amount_of_bedrooms += $division->{DivisionQuantity};
}
open my $fh, ">>", "Result.csv" or …Run Code Online (Sandbox Code Playgroud) 我在向Yammer(https://www.yammer.com/api_doc.html)提出简单的API请求时遇到问题.我需要获取https://www.yammer.com/api/v1/groups.xml(组:组列表).
我正在尝试使用Net :: OAuth :: Simple.这是我的Yammer.pm:
package Yammer;
use strict;
use base qw(Net::OAuth::Simple);
sub new {
my $class = shift;
my %tokens = @_;
return $class->SUPER::new( tokens => \%tokens,
urls => {
authorization_url => "https://www.yammer.com/oauth/authorize",
request_token_url => "https://www.yammer.com/oauth/request_token",
access_token_url => "https://www.yammer.com/oauth/access_token",
},
protocol_version => '1.0a',
);
}
sub view_restricted_resource {
my $self = shift;
my $url = shift;
return $self->make_restricted_request( $url, 'GET' );
}
sub update_restricted_resource {
my $self = shift;
my $url = shift;
my …Run Code Online (Sandbox Code Playgroud) 我有电子邮件发送代码,没有任何错误消息不起作用("不工作"我的意思是所有接缝OK但我的邮箱中没有消息):
use strict;
use warnings;
use Email::Send;
use Email::Simple::Creator;
report_update();
sub report_update {
my $mailer = Email::Send->new(
{
mailer => 'SMTP::TLS',
mailer_args => [
Host => 'smtp.gmail.com',
Port => 587,
User => $CONFIG{EMAIL_USER},
Password => $CONFIG{EMAIL_PASS},
Hello => 'localhost',
]
}
);
my $email = Email::Simple->create(
header => [
From => $CONFIG{EMAIL_USER},
To => $CONFIG{TARGET_EMAIL},
Subject => 'Updated info finded!',
],
body => 'Updated info finded!',
);
eval { $mailer->send($email) };
die "Error sending email: $@" if $@; …Run Code Online (Sandbox Code Playgroud)