[SP-pm] HERE-DOCS: Forma culta ? Quando usar ?
Luis Motta Campos
luismottacampos at yahoo.co.uk
Thu Nov 13 05:52:30 PST 2008
Wendel Scardua wrote:
> 2008/11/13 André Garcia Carneiro <andre.garcia.carneir em terra.com.br>
>
>> Eu particularmente não gosto de here-docs. Sempre quando vejo um tenho a
>> sensação de não estar mais lidando com
>> Perl...rsrsrs!
>
>
> A parte que eu menos gosto do "heredocs" é que a identação fica esquisita...
> Se pelo menos a string que delimita o heredocs pudesse ficar identada com a
> continuação do código... (e eu só uso heredocs praquele "Uso: " mesmo... )
Esta é uma das coisas para as quais eu parei de usar here-docs faz muito
tempo.
Ao invés disso, documenta com POD e usa Pod::Usage para extrair a
documentação "ao vivo". Por exemplo, aqui tem um trechinho do código de
busca de uma aplicação que eu escrevi para facilitar a vida do suporte
técnico do RIPE NCC:
my %options_mapping = (
'help|h!' => \$$opts{help},
'verbose|v+' => \$$opts{verbose},
'case-sensitive|c!' => \$$opts{case},
'from|begin|f|b=s' => sub { process_date_expression $opts, @_ },
'to|end|t|e=s' => sub { process_date_expression $opts, @_ },
'type|T=s' => sub { type_option_handler $opts, @_ },
'output-file|o=s' => \$$opts{output_file},
'regular-expression|r!' => \$$opts{re},
'version!' => sub {die "Running $0 version: $VERSION\n"},
);
# Allow '-vh' together with '--verbose --help'
Getopt::Long::Configure('bundling');
GetOptions(%options_mapping)
or pod2usage( { -verbose => $$opts{verbose} } );
pod2usage( { -exitval => 0, -verbose => $$opts{verbose} } )
if $$opts{help};
# Last argument in the command line is always the pattern to be used.
if ( !( $$opts{pattern} = pop @ARGV ) ) {
pod2usage({
-message => format_error_message(q{Search pattern required.}),
-verbose => $$opts{verbose},
});
}
Repare nas chamadas que eu faço para pod2usage(), que é a função de
entrada para o Pod::Usage - elas fazem parse da extensiva documentação
que eu tenho em POD junto com o código, e apresentam isso como "usage" e
"help" entre outras coisas.
Espero que isso te dê idéias.
Putamplexos
--
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.
More information about the SaoPaulo-pm
mailing list