Fields,<br><br>Eu vou fazer um contra-ponto aqui com você. Eu acho que o que você escreveu faz muito sentido, MAS depende do contexto. Você, e vários outros aqui, desenvolvem sistemas de médio a maior porte. Separar a implementação das regras de negócio de um blocão de conteúdo estático faz todo o sentido do mundo num contexto desses.<br>
<br>Mas em programas pequenos, e aqui estou pensando naqueles scripts que eu faço e que são muito simples, não vale a pena fazer isso. O exemplo de "usage" é perfeito para isso, e é exatamente o que faço nos meus scripts.<br>
<br>my $0.02<br><br>[]s<br><br><div class="gmail_quote">2008/11/13 Luis Motta Campos <span dir="ltr"><<a href="mailto:luismottacampos@yahoo.co.uk">luismottacampos@yahoo.co.uk</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Bruno Borela wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Do livro "Perl Best Practices" do Damian Conway:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The "break-after-newlines-and-concatenate" approach is fine for a small number of lines, but it starts to become inefficient - and<br>
ugly - for larger chunks of text.<br>
</blockquote></blockquote>
<br>
Bom, eu acho que eu tenho poder de fogo para discordar do Damian Conway. :) Eu discordo, e me explico.<br>
<br>
Se, por qualquer motivo que seja, você tem de misturar quantidades absurdas de texto com seu programa, eu posso garantir que alguma coisa está errada com seu projeto de software.<br>
<br>
Eu não gosto e não recomendo usar here-docs para nada: eles são desajeitados, menos óbvios que qualquer outro tipo de string literal, e permitem que a gente construa estruturas gigantescas, separando o código por um "mar" de texto.<br>
<br>
Bom, qual é o problema? Erros lógicos são mais complicados de pegar se você separa os "pedaços" e não pode olhar para todos eles ao mesmo tempo.<br>
<br>
Claro, todo mundo um dia precisou cuspir uma mensagem grande, ou um trechão de HTML ou Javascript, ou armazenar um "monstrinho SQL" em algum lugar. As minhas recomendações, em ordem de preferência:<br>
<br>
1. Se é uma coisa recorrente, encontre um módulo que resolva o problema armazenando os dados em arquivos de dados (que podem ser lidos conforme a conveniência).<br>
<br>
2. Se você tem apenas um texto grande, use a secção __DATA__ do seu programa.<br>
<br>
3. Se você não está satisfeito com os módulos e tem mais de um texto grande para gerenciar, use o módulo Exporter para implementar um ou mais módulos (organize por alguma forma lógica e intuitiva) que exportem constantes com o teu texto, e lá, longe da implementação das tuas regras de negócio, use here-docs. Exemplo:<br>
<br>
package My::Big::Text;<br>
use strict;<br>
use warnings;<br>
use Exporter;<br>
our ( @EXPORT_OK, @EXPORT ) = qw( $BigText );<br>
<br>
$My::Big::Text = <<'BIG_TEXT' ;<br>
bla bla bla<br>
BIG_TEXT<br>
<br>
__END__<br>
<br>
Espero que isso sirva como exemplo para duas coisas:<br>
<br>
1. O PBP é bom, mas não está sempre 100% correto. Use seu cérebro!<br>
2. Existem formas mais "complicadas" de resolver o problema de uma forma mais elegante. Isso é parte da filosofia básica por trás do Perl: TIMTOWTDI.<br>
<br>
Putamplexos.<br><font color="#888888">
-- <br>
Luis Motta Campos is a software engineer,<br>
Perl Programmer, foodie and photographer.<br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Alexei Znamensky [russoz_gmail_com] [<a href="http://russoz.wordpress.com">russoz.wordpress.com</a>] [<a href="http://www.flickr.com/photos/alexeiz">www.flickr.com/photos/alexeiz</a>]<br>
"Though we live in trying times, we're the ones who have to try"<br>