Tratamento básico de Opções

2011-02-08, por Alberto Simões ambs@cpan.org

Newbie Icon

Ao desenvolver aplicações de linha de comando é típico querermos analisar que opções foram passadas para a aplicação para activar ou desactivar determinadas funcionalidades.

Embora exista uma centena de módulos no namespace Getopt para o tratamento de opções de linha de comando (dos quais destaco o Getopt::WonderBra, apenas pelo seu nome), o Perl tem a capacidade de tratar opções básicas sem a instalação de qualquer módulo. Para isso basta usar a opção -s do Perl que automaticamente transforma qualquer opção da forma -xyz na linha de comando numa variável $xyz, e as opções da forma -foo=bar numa variável $foo com o valor "var".

Para dar um exemplo, imaginemos uma aplicação que deva suportar a opção -v, para activar o modo verboso, e a opção -user para especificar o nome do utilizador (caso contrário utilizará a variável de ambiente USER):

   #!/usr/bin/perl -s
   use strict;
   use warnings;
   our ($user, $v);

   if ($v) { print "Activei modo verboso\n"; }

   $user = $user || $ENV{USER};

   printf("Activado o utilizador $user");

Ora, o our é utilizado para definir variáveis globais. É boa política definir as variáveis que se pretendem utilizar com a opção -s para que, ao usar as opções strict e warnings o Perl não se queixe de variáveis não definidas.

Enhanced by Zemanta