小编gan*_*ass的帖子

使用perl解析大型(100 Mb)XML文件时"内存不足"

解析大(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)

xml perl xml-twig

8
推荐指数
2
解决办法
2114
查看次数

用Perl理解oAuth

我在向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)

perl oauth yammer

6
推荐指数
1
解决办法
4223
查看次数

通过Gmail发送电子邮件

我有电子邮件发送代码,没有任何错误消息不起作用("不工作"我的意思是所有接缝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)

email perl ssl gmail

2
推荐指数
1
解决办法
2974
查看次数

标签 统计

perl ×3

email ×1

gmail ×1

oauth ×1

ssl ×1

xml ×1

xml-twig ×1

yammer ×1