Dica de Programação – Criando Scripts com Parâmetros em Perl

Novembro 23, 2008

Dica de Programação - Perl , Getopts

Olá, este é mais um post da série “Dicas de Programação do Titio Plastico”, hoje vou mostrar como você consegue criar sem muito esforço um script que receberá diversos parâmetros pela linha de comando que servirão de informações adicionais para um script se tornar mais dinâmico. O que é algo muito útil para Administradores de Sistema e programadores que querem agilizar ao máximo seu trabalho.

A linguagem de hoje é:

Perl

Dados técnicos:

Versão do Perl – v5.8.8
Distribuição Testada – Ubuntu 8.4

Fazendo a Mágica acontecer

Abaixo vai o código comentado, no exemplo serão passados Nome, email e telefone de um usuário qualquer:


#!/usr/bin/perl

#[ Use estes dois aqui sempre, esta lah no livro de boas praticas ]
use warnings;
use strict;

#[Esta é a classe que deve ser chamada para gerenciar os parâmetros]
use Getopt::Std;

#[Criaremos aqui um array vazio que irá receber os parâmetros]
my %hash = ();

#[Aqui é onde o getopts associa o conteúdo de cada parâmetro ao array]
getopts(“:n:e:t:”, \%hash);

#[Mandando inprimir o resultado]
print ” Nome $hash{n} , email $hash{e} , telefone $hash{t}\n”;

Executando o script:

~$ ./parametros.pl -n Plastico -e plastico@hotmail.com -t 21212121
Nome Plastico , email plastico@hotmail.com , telefone 21212121

Conciderações finais

O exemplo utilizado aqui é extremamente simples, apenas para didática, mostrando claramente como a classe getopts funciona para receber os parâmetros passados pelo usuário. Contudo está é uma ferramenta poderosa e sua utilização é bem vasta, se bem explorada.

Gostou desse post? Então você vai gostar deste:
Dica de Programação – Fazendo Insert de BLOB com Perl no MySQL
Teste a Portabilidade dos seus scripts

Adicionar ao Ueba Adicionar aos Favoritos BlogBlogs Adicionar artigo ao DiHitt Adicionar artigo ao Eu Curti Adicionar esta noticia no Linkk Envie este link para linkTo! Adicionar artigo ao Rec6 Adicionar ao Ueba

Quer ter estes botões no seu site? Acesse


Dica de Programação – Fazendo Insert de BLOB com Perl no MySQL

Outubro 22, 2008

Banner Tec News - Blob MySQL Perl

Olá a todos, tentarei iniciar aqui uma série de post denominada “Dicas de Programação do Titio Plastico”, onde darei dicas úteis, concisas e de escopo definido sobre as linguagens de programação que eu conheço. Começarei com este exemplo, pois foi algo que procurei bastante na internet para um script que eu estava fazendo e não achei nanhuma informação de credibilidade sobre o assunto, achei estranho, ao final acabei fazendo do jeito mais obvio, e na minha cabeça o mais improvável, e não é que deu certo! Bom, sem mais demoras, vamos ao que interessa.

A linguagem de hoje é:

Perl

Dados técnicos:

Versão do Perl – v5.8.8
Versão do MySQL – 5.0.18
Distribuições Testadas – Suse 10.1 e Ubuntu 7.10

Antes de Começar:

Certifique-se de que você tem as versões citadas acima ou superiores, e que você tenha conexão com uma base de dados que contenha campos do tipo BLOB. Caso não tenha uma tabela com BLOB ai vai um exemplo:

CREATE TABLE `user` (
`user_id` int(5) unsigned NOT NULL auto_increment,
`user_name` varchar(255) character set latin1 collate latin1_bin NOT NULL default ”,
`user_password` tinyblob NOT NULL,
`user_email` tinytext NOT NULL,
`user_options` blob NOT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_name` (`user_name`),
KEY `user_email_token` (`user_email_token`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=30 ;

No exemplo acima definimos o “user_options” como uma série de configurações padrão para criação de um novo usuário que serão lidas por uma aplicação que fará o acesso ao banco através de um arquivo .txt , chamaremos este arquivo de template.txt.

Fazendo a Mágica acontecer

Abaixo vai o código comentado:


#!/usr/bin/perl

#[ Use estes dois aqui sempre, esta lah no livro de boas praticas ]
use warnings;
use strict;
#[ Este aqui eh usado para acessar o banco ]
use DBI;

#[ Outras variaveis ]
my $login = “usertest”;
my $email = “usertest@email.com”;

#[ Variavel que ira receber o arquivo inicialmente zerada ]
my $options = “”;

#[ Abrimos o arquivo e armazenamos em uma variavel ]
open(FILE, “template.txt”) or die “File cannot be read”;
read(FILE, $options, 1153);
close(FILE);

#[ Conecta no banco ]
my $dbh = DBI->connect(“DBI:mysql:nome da tabela“, ‘usuario‘, ‘senha‘) or die “Impossivel conectar no Servidor: $DBI::errstr”;

#[ Inserindo os dados ]
$query = “INSERT INTO nome da tabela.user (user_name,user_email,user_options) VALUES (?, ?, ?, ?)”;
$insert = $dbh->prepare_cached($query);
$insert->execute($login, $email, $options) or die “Impossivel conectar no Servidor: $DBI::errstr”;
print “Usuario $login adicionado com sucesso!\n”;

#[ Desconecta do Banco ]
$dbh->disconnect;

Conciderações finais

Lembre-se que o Perl irá procurar o arquivo no mesmo diretório onde o script se encontra, caso o script e o arquivo a ser carregado estejam em diretórios diferentes altere a linha “open” com o caminho completo do arquivo.

O número que existe nalinha read(FILE, $options, 1153);significa o tamanho do arquivo em kbites.

Para saber mais

Documentação Oficial do MySQL sobre BLOB
Documentação Oficial do Perl DBI

Gostou desse post? Então você vai gostar deste:
Teste a Portabilidade dos seus scripts

Adicionar ao Ueba Adicionar aos Favoritos BlogBlogs Adicionar artigo ao DiHitt Adicionar artigo ao Eu Curti Adicionar esta noticia no Linkk Envie este link para linkTo! Adicionar artigo ao Rec6 Adicionar ao Ueba

Quer ter estes botões no seu site? Acesse