.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "POD2::PT::POD2::Base 3pm" .TH POD2::PT::POD2::Base 3pm "2010-01-23" "perl v5.10.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOME" .IX Header "NOME" POD2::Base~[pt] \- Mo\*'dulo ba\*'sico para traduc\*,o\*~es de documentac\*,a\*~o Perl .SH "SINOPSE" .IX Header "SINOPSE" .Vb 2 \& use POD2::Base; \& $pod2 = POD2::Base\->new({ lang => \*(AqEO\*(Aq }); \& \& @dirs = $pod2\->pod_dirs; \& $re = $pod2\->search_perlfunc_re; .Ve .SH "DESCRIC\*,A\*~O" .IX Header "DESCRIC,A~O" Este co\*'digo e\*' uma abstrac\*,a\*~o do co\*'digo em \s-1POD2::IT\s0 e \&\s-1POD2::FR\s0, mo\*'dulos que pertencem aos projetos italiano e france\*^s de traduc\*,a\*~o dos documentos que acompanham o interpretador Perl. .PP Com o pacote de traduc\*,a\*~o ja\*' instalado, a documentac\*,a\*~o traduzida pode ser acessada atrave\*'s do comando: .PP .Vb 1 \& $ perldoc POD2:::: .Ve .PP (onde e\*' uma abreviac\*,a\*~o para linguagem como \&\s-1IT\s0, \s-1FR\s0, \s-1TLH\s0, etc.) .PP Isto funciona seguramente ate\*' para as verso\*~es antigas do perldoc. Na\*~o e\*' muito conveniente mas sempre funciona. .PP Para incrementar o suporte para leitura destes documentos traduzidos, o programa perldoc (desde a versa\*~o 3.14_01) foi atualizado para encontrar PODs traduzidos assim: .PP .Vb 3 \& $ perldoc \-L IT \& $ perldoc \-L FR \-f \& $ perldoc \-L TLH \-q .Ve .PP (Nota: Este suporte foi distribui\*'do junto da versa\*~o 5.10.0 do interpretador Perl recentemente disponilizado no \s-1CPAN\s0.) .PP O objetivo desta classe e\*' prover uma base mi\*'nima para ajudar o \f(CW\*(C`perldoc\*(C'\fR e os autores de projetos de traduc\*,a\*~o a fazerem seu trabalho. .SH "SUBCLASSES" .IX Header "SUBCLASSES" Se voce\*^ quer escrever um pacote de traduc\*,a\*~o (e tem algumas necessidades de personalizac\*,a\*~o), seu trabalho pode ser diminui\*'do se voce\*^ criar uma subclasse de \f(CW\*(C`POD2::Base\*(C'\fR. .PP Por exemplo, um exemplo mi\*'nimo e\*' ilustrado abaixo. .PP .Vb 1 \& package POD2::TLH; # Klingon \& \& use POD2::Base; \& our @ISA = qw( POD2::Base ); \& \& sub search_perlfunc_re { # ajuda \*(Aqperldoc \-f\*(Aq a funcionar \& return \*(AqKlingon Listing of Perl Functions\*(Aq; \& } \& \& 1; .Ve .PP E enta\*~o .PP .Vb 1 \& $ perldoc \-L tlh perlintro .Ve .PP vai lhe apresentar a introduc\*,a\*~o de Perl na linguagem Klingon (desde que um arquivo \fIPOD2/TLH/perlintro.pod\fR tenha sido distribui\*'do junto com \fI\s-1POD2/TLH\s0.pm\fR) e .PP .Vb 1 \& $ perldoc \-L tlh \-f pack .Ve .PP vai encontrar a documentac\*,a\*~o em Klingon de \f(CW\*(C`pack\*(C'\fR (se \&\fIPOD2/TLH/perlfunc.pod\fR foi disponibilizado tambe\*'m). .SH "ME\*'TODOS" .IX Header "ME'TODOS" Este mo\*'dulo foi projetado como uma classe \s-1OO\s0 com uma \&\s-1API\s0 bem pequena. .IP "\fBnew\fR" 4 .IX Item "new" .Vb 2 \& $pod2 = POD2::Base\->new(\e%args); \& $pod2 = POD2::ANY\->new(); .Ve .Sp O constructor. A criac\*,a\*~o de uma insta\*^ncia pode se fazer de modo similar a: .Sp .Vb 1 \& $pod2 = POD2::Base\->new({ lang => \*(Aqtlh\*(Aq }); .Ve .Sp onde as opc\*,o\*~es suportadas sa\*~o: .RS 4 .IP "\(bu" 4 \&\*(L"lang\*(R" .Sp Especifica o co\*'digo da linguagem em que estamos interessados. Este para\*^metro e\*' obrigato\*'rio, mas pode ser extrai\*'do do nome da subclasse, como explicado mais abaixo. .IP "\(bu" 4 \&\*(L"inc\*(R" .Sp Este para\*^metro e\*' usado para substituir a lista de direto\*'rios para as bibliotecas Perl onde procuram-se os documentos \s-1POD\s0 (ou seja, \f(CW@INC\fR). Na maior parte do tempo, voce\*^ na\*~o vai querer mexer com isto. Este para\*^metro e\*' mais u\*'til para \fIdebugging\fR e testes. .Sp Espera-se um \fIarray ref\fR. .RE .RS 4 .Sp Se \f(CW\*(C`POD2::ANY\*(C'\fR e\*' uma subclasse de \f(CW\*(C`POD2::Base\*(C'\fR, o construtor herdado funcionara\*' sem argumentos extraindo '\s-1ANY\s0' do nome do pacote e usando-o como o co\*'digo da linguagem desejada. .Sp Note que o uso de \*(L"inc\*(R" no construtor congela a lista de direto\*'rios vasculhados pela insta\*^ncia \f(CW\*(C`POD2::Base\*(C'\fR. Se na\*~o e\*' usado, o conteu\*'do atualizado de \f(CW@INC\fR e\*' usado em cada chamada de \f(CW\*(C`pod_dirs\*(C'\fR (de tal forma que mudanc\*,as dina\*^micas no \fIpath\fR para as bibliotecas Perl sa\*~o percebidas). E\*' isto que queri\*'amos dizer com \*(L"Na maior parte do tempo, voce\*^ na\*~o vai querer mexer com isto.\*(R" .RE .IP "\fBpod_dirs\fR" 4 .IX Item "pod_dirs" .Vb 2 \& @dirs = $pod2\->pod_dirs; \& @dirs = $pod2\->pod_dirs(\e%options); .Ve .Sp Usado por \f(CW\*(C`Pod::Perldoc\*(C'\fR para descobrir onde procurar por PODs traduzidos. .Sp O comportamento padra\*~o de \f(CW\*(C`POD2::Base\*(C'\fR e\*' encontrar cada direto\*'rio \fIPOD2//\fR sob os direto\*'rios de bibliotecas Perl (\f(CW@INC\fR) ou na lista dada como o argumento \*(L"inc\*(R" no construtor. .Sp As opc\*,o\*~es suportadas sa\*~o: .RS 4 .IP "\(bu" 4 \&\*(L"test\*(R" .Sp Por \fIdefault\fR, o retorno de \f(CW\*(C`pod_dirs\*(C'\fR na\*~o inclui direto\*'rios \s-1POD\s0 que na\*~o existem (testados com \f(CW\*(C`\-d\*(C'\fR). Se um valor falso expli\*'cito e\*' dado para esta opc\*,a\*~o (por exemplo, \f(CW\*(C`test => 0\*(C'\fR), este teste na\*~o e\*' feito e \f(CW\*(C`pod_dirs\*(C'\fR inclui todos candidatos \&\fIPOD2//\fR abaixo dos direto\*'rios de bibliotecas. (U\*'til para o \fIdebugging\fR deste mo\*'dulo, mas sem outros usos pra\*'ticos ale\*'m deste.) .RE .RS 4 .RE .IP "\fBsearch_perlfunc_re\fR" 4 .IX Item "search_perlfunc_re" .Vb 1 \& $re = $pod2\->search_perlfunc_re; .Ve .Sp Para implementar \f(CW\*(C`perldoc \-f \*(C'\fR o co\*'digo atual de \f(CW\*(C`Pod::Perldoc\*(C'\fR usa um \fIstring\fR fixo \*(L"Alphabetical Listing of Perl Functions\*(R" ou o retorno deste me\*'todo (em uma regex) para pular a introduc\*,a\*~o e alcanc\*,ar a listagem das func\*,o\*~es \&\fIbuiltin\fR. Enta\*~o um pacote de traduc\*,a\*~o com a correspondente traduc\*,a\*~o de \fIperlfunc.pod\fR deve definir este me\*'todo para fazer \&\f(CW\*(C`perldoc \-L \-f \*(C'\fR funcionar corretamente. .PP Ha\*' outros me\*'todos documentados abaixo. Entretanto, eles provavelmente sera\*~o tornados obsoletos em verso\*~es futuras quando forem projetados e implementados me\*'todos mais gerais de encontrar e mostrar os metadados sobre os PODs traduzidos. .IP "\fBpod_info\fR" 4 .IX Item "pod_info" .Vb 1 \& $hashref = $pod2\->pod_info; .Ve .Sp Usado pelo pro\*'prio \f(CW\*(C`POD2::Base\*(C'\fR e seus ancestrais \&\f(CW\*(C`POD2::IT\*(C'\fR e \f(CW\*(C`POD2::FR\*(C'\fR. O retorno conte\*'m alguns metadados sobre os PODs traduzidos usados pelos me\*'todos \f(CW\*(C`print_pod\*(C'\fR e \f(CW\*(C`print_pods\*(C'\fR. .Sp Ao fazer subclasses seguindo o padra\*~o de \f(CW\*(C`POD2::IT\*(C'\fR e \f(CW\*(C`POD2::FR\*(C'\fR, voce\*^ \fBdeve\fR redefinir este me\*'todo com a informac\*,a\*~o atual sobre quais traduc\*,o\*~es \&\s-1POD\s0 o pacote atual esta\*' disponibilizando. .IP "\fBprint_pods\fR" 4 .IX Item "print_pods" .Vb 1 \& $pod2\->print_pods; .Ve .Sp Mostra (via \f(CW\*(C`print\*(C'\fR) todos PODs traduzidos e a versa\*~o correspondente de Perl dos arquivos originais. .IP "\fBprint_pod\fR" 4 .IX Item "print_pod" .Vb 2 \& $pod2\->print_pod(@pages); \& $pod2\->print_pod(); # usa @ARGV .Ve .Sp Mostra a versa\*~o de Perl correspondente dos arquivos originais associados aos PODs passados como argumentos. .SH "EXEMPLOS" .IX Header "EXEMPLOS" .SS "\s-1POD2::TLH\s0" .IX Subsection "POD2::TLH" Uma versa\*~o mais completa de \f(CW\*(C`POD2::TLH\*(C'\fR pode-se parecer com isto: .PP .Vb 1 \& package POD2::TLH; # Klingon \& \& use POD2::Base; \& our @ISA = qw( POD2::Base ); \& \& sub search_perlfunc_re { \& return \*(AqKlingon Listing of Perl Functions\*(Aq; \& } \& \& sub pod_info { \& return { perlintro => \*(Aq5.8.8\*(Aq }; \& } \& \& 1; .Ve .PP E voce\*^ pode experimentar: .PP .Vb 4 \& use POD2::TLH; \& my $pod2 = \*(AqPOD2::TLH\*(Aq; \& $pod2\->print_pods(); \& $pod2\->print_pod(\*(Aqpod_foo\*(Aq, \*(Aqpod_baz\*(Aq, ...); .Ve .SS "\s-1OS\s0 \s-1ARQUIVOS\s0 \s-1INSTALADOS\s0" .IX Subsection "OS ARQUIVOS INSTALADOS" Se voce\*^ quer descobrir quais arquivos PODs de uma dada linguagem que esta\*~o instalados junto com seu interpretador Perl, voce\*^ pode usar um co\*'digo similar a este. .PP .Vb 2 \& use File::Find; \& use POD2::Base; \& \& my $pod2 = POD2::Base\->new({ lang => $lang }); \& \& my @files; \& find sub { push @files, $File::Find::name } if \-f }, \& $pod2\->pod_dirs; \& print "$_\en" for @files; .Ve .PP Na distribuic\*,a\*~o \f(CW\*(C`POD2\-Base\*(C'\fR, e\*' inclui\*'do um script \&\fIeg/list.pl\fR com uma versa\*~o estendida deste co\*'digo. .PP As regras para encontrar \s-1POD\s0 em arquivos \fI.pod\fR, \fI.pm\fR e outros pertencem ao mo\*'dulo Pod::Perldoc. Assim \f(CW\*(C`POD2::Base\*(C'\fR na\*~o tenta repetir esta funcionalidade aqui. .SH "AUTORES" .IX Header "AUTORES" Enrico Sorcinelli (pelo co\*'digo original em \s-1POD2::IT\s0) .PP Adriano Ferreira .SH "VEJA TAMBE\*'M" .IX Header "VEJA TAMBE'M" \&\s-1POD2::IT\s0, \s-1POD2::FR\s0, \s-1POD2::LT\s0, \s-1POD2::CN\s0, perldoc, perl. .PP A versa\*~o original deste documento: POD2::Base. .PP (O propo\*'sito desta traduc\*,a\*~o e\*' servir como um primeiro teste para experimentar o suporte dos va\*'rios modules Pod e \fIsites\fR Perl aos PODs traduzidos.) .PP (This translation was supplied as a front test against the support of the many Pod modules and Perl sites on translated PODs.) .SH "COPYRIGHT E LICENC\*,A" .IX Header "COPYRIGHT E LICENC,A" Copyright (C) 2004\-2006 Perl.it / Perl Mongers Italia .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.