NAME

Acme::BOPE.pm - Programe armado, cumpadi, e de farda preta.

Note: this Acme module lets you program the way the BOPE (brazilian police's special operations squad) policemen talk in the movie "Tropa de Elite". Since its intended audience have to understand portuguese in order to enjoy the module, the rest of the documentation is all in pt_BR. Have fun! Oh, also, this is not to be taken seriously, nor does it expresses the opinion of any of the involved people, nor is oficially linked to the movie.

Esse módulo foi feito como uma brincadeira em relação ao filme "Tropa de Elite", e não deve ser levado à sério. Nada do que está escrito aqui expressa a opinião dos autores ou qualquer outro envolvido direta ou indiretamente com o mesmo, e não há qualquer tipo de ligação oficial com o filme. Divirtam-se!

VERSÃO

Versão 0.01

SINOPSE

 use Acme::Bope;

E a partir daí poderá escrever seus programas assim:

Senhor 01, o senhor eh um "fanfarrao"!
se o senhor for "moleque" entao pede pra sair "seu viado"! 
senao senta o dedo nessa porra e bota na conta do Papa!
vai dar merda, "vai morrer gente...";

O 01 DESISTIU!!!

Os senhores estao fazendo o seu instrutor muito feliz...

que é mais ou menos equivalente a:

$_01 = "fanfarrao";
if ($_01 eq "moleque") {
   die "seu viado";
}
else {
   print "Caveira, meu capitao!\n" and exit;
   warn "vai morrer gente";

   $_01 = undef;
}

Você ainda pode dar o comando para ouvir seu pelotão...quer dizer, seu programa... cantar um dos famosos hinos do BOPE:

Pelotão, cantar hino!
# Cachorro latindo/Criança chorando/Vagabundo vazando/É o BOPE chegando

Essa versão possui 7 hinos cadastrados. Se você souber de outro, grite!

E, se você tem alguma dúvida sobre o seu capitão, basta citar o nome dele pra ouvir um dos fatos:

Capitão Nascimento?
# Capitão Nascimento dorme com um travesseiro debaixo de uma arma.

Essa versão possui 28 "fatos" cadastrados. Se você souber de outro, grite! E antes que alguém pergunte, não vamos incluir nenhum fato que seja "compartilhado" com Chuck Norris ou Jack Bauer, porque eles são MOLEQUES!

DESCRIÇÃO

Criado na base do morro da Babilônia, Rio de Janeiro, em plena noite de baile funk, este módulo permite que os senhores façam incursões de programação Perl usando apenas jargões e linguagens retiradas do famoso filme 'Tropa de Elite' de José Padilha, com estratégia e sem fanfarronice. Isso é, se vocês conseguirem. Senão, pede pra sair... e bota na conta do Papa.

EQUIVALÊNCIAS

Caso ainda seja novo no batalhão, aqui vão algumas equivalências:

  • (print) - fala, grita

  • (warn "MENSAGEM") - vai dar merda "MENSAGEM"

  • (system "COMANDO") - vai pra guerra "COMANDO"

  • (split) - fatia, fatiou

  • (next) - passa, passou

  • (last) - chega!!! pára!!!

  • (die) - pede pra sair

  • (exit) - desisto, eu desisto, bota na conta do papa

Blocos podem ser escritos de forma simples e direta:

faz isso aqui:
    ...
estamos entendidos?
# ou ainda: os senhores estão fazendo o seu instrutor muito feliz

É o mesmo que:

{
    ...
}

Condicionais são feitos assim:

se EXPRESSÃO então
    ...
senão
    ...
estamos entendidos?

É o mesmo que:

if (EXPRESSÃO) {
    ...
}
else {
    ...
}

Você pode também usar laços (laço de homem, nada de ficar botando lacinho nos seus programas!!!):

para (...) então, faça
   ...
estamos entendidos?

É o mesmo que:

for (...) {
   ...
}

ou ainda:

enquanto (...)
   ...
estamos entendidos?

É o mesmo que:

while (...) {
   ...
}

Lembrando que comparações podem ser feitas assim:

ne      nunca serão, jamais serão, não é, não será, jamais será
not     não, nunca, jamais
eq      será, serão, for
==      vale, valerá

É possível ainda adicionar uma série de palavras adicionais para deixar seu código mais "legível", e impor a ordem entre esses programadores fanfarrões.

  • o, a, os, as, no, na, nos, nas, do, da, dos, das

  • ele, ela, eles, elas, dele, dela, deles, delas, desse, dessa, desses, dessas, nesse, nessa, nesses, nessas

  • seu, sua, seus, suas

  • eu

  • com, sem

  • porra, merda, viado (e pode adicionar quantas interrogações ou exclamações quiser depois)

MAIÚSCULAS E ACENTOS

No linguajar do Bope, nenhuma palavra é sensível a caixa. Você pode sussurar comandos ou gritar com vagabundos, tudo funciona. Exemplos:

DIAGNÓSTICO

Se você acha que fez m#$%@ e quer ver o código equivalente em Perl (em vez de simplesmente executar seu programa inútil), passe o parâmetro DEBUG para o módulo:

use Acme::BOPE DEBUG => 1;

Quanto tempo você precisa pra depurar? 10 minutos???? Fanfarrão.

DEPENDÊNCIAS

Tu é dependente, mermão????? Se quiser ver o código de debug cheio de frufru, instala o Perl::Tidy que é 100%.

Ah, e se os senhores não tiverem o Filter::Simple instalado, nunca serão...

BUGS

Provavelmente um monte. Se encontrar algum, avisa via RT. Mas sem fanfarrice, estamos entendidos?

(temos ainda que atualizar a documentação do módulo para incluir variáveis

AUTORES

Breno G. de Oliveira <garu at cpan.org> e Fernando Corrêa <fco at cpan.org>

Esse módulo foi feito como uma brincadeira dentro da comunidade Perl sobre o filme Tropa de Elite, na semana de lançamento do filme. Apresentamos durante o YAPC::Brasil 2007 e o pessoal gostou tanto que encheu a nossa paciência para botarmos no ar. Taí.

RECONHECIMENTOS E AGRADECIMENTOS

O código foi fortemente baseado no Acme::Lingua::Strine::Perl do Simon Wistow simon [at] twoshortplanks.com

Agradecimentos especiais ao Bruno C. Buss pelas idéias e colaborações, e a todo o pessoal do ônibus que nos levou até São Paulo na véspera do evento, que nos aturaram madrugada a dentro enquanto terminávamos o desenvolvimento e corrigíamos alguns bugs.

VEJA TAMBÉM

Filter::Simple, Acme::Lingua::Strine::Perl http://www.tropadeeliteofilme.com.br

LICENÇA E COPYRIGHT

Copyright 2008 Breno, Fernando. Todos os direitos reservados.

Este módulo é software livre; você pode redistribuí-lo e/ou modificá-lo sob os mesmos termos que o Perl em si. Veja perlartistic.

GARANTIA

Nenhuma. Eu hein...

1 POD Error

The following errors were encountered while parsing the POD:

Around line 205:

Non-ASCII character seen before =encoding in 'módulo'. Assuming CP1252