[SP-pm] Enc: Re: Ajuda no módulo EndnoteStyle

Nelson Ferraz nferraz at gmail.com
Thu Oct 22 10:46:18 PDT 2009


Parece bem simples. Dada uma string como essa:

my $sample = <<'ENDNOTE';
%0 Journal Article
%1 1294302
%A Fabian M\&\#246;rchen
%T Unsupervised pattern mining from symbolic temporal data
%J SIGKDD Explor. Newsl.
%@ 1931-0145
%V 9
%N 1
%P 41-55
%D 2007
%R http://doi.acm.org/10.1145/1294301.1294302
%I ACM
ENDNOTE


Você pode obter uma lista de { chave => valor } da seguinte maneira:

my %data = parse($sample);

sub parse {
    my $data = shift;

    my %value;
    while ( $data =~ /^(..) (.+)$/gm ) {
        $value{$1} = $2;
    }

    return %value;
}


Você pode inclusive usar um hash para traduzir o código para o
significado desejado:

my %field = (
        '%0' => 'type',
        '%1' => 'id',
        '%A' => 'author',
        '%T' => 'title',
        '%J' => 'journal',
        # etc
);

Espero que isso ajude a começar.


More information about the SaoPaulo-pm mailing list