Scalar - Alguns dos usos mais comuns deste tipo de variável do Perl
Publicado por Daniel Vinciguerra (última atualização em 29/03/2016)
[ Hits: 2.860 ]
Homepage: http://bivee.com.br
Perl possui alguns tipos de variáveis muito interessantes cujos principais são representados por $ para scalares, @ para arrays e % para arrays associativos ou hashtables. O tipo mais versátil da lista acima na minha opinião é o Scalar.
A variável Scalar no Perl pode assumir valores unitarios como referencias de outros tipos, filehandles, objetos, etc...
EXEMPLO DE SCALAR:
my $string = 'Isso é uma Scalar em Perl';
Esta Scalar, no contexto acima, esta sendo utilizada como string mais a verdade é que ela pode assumir diversos outros tipos de valores como veremos neste script abaixo.
PRÉ-REQUISITOS
- perl 5.10 ou superior
REFERÊNCIAS
http://perldoc.perl.org/perlintro.html#Perl-variable-types
http://perldoc.perl.org/perlref.html
EXECUTANDO
$ DEBUG=1 perl scalars.pl
#!/usr/bin/env perl # 2016 (c) Daniel Vinciguerra # pragmas use 5.10.0; use strict; use warnings; # imports use Data::Dumper; # declaração de uma scalar my $scalar; logger("Declaração da scalar sem valor", $scalar); # scalar como string $scalar = 'Viva O Linux'; logger("Scalar como string", $scalar); # scalar como int $scalar = 2016; logger("Scalar como int", $scalar); # setando scalar como undef undef $scalar; logger("Scalar como undef", $scalar); # scalar como file handle (manipulação de arquivos/diretórios) open $scalar, '>', 'file.tmp' or die "Error: $!"; logger("Scalar como filehandle (". ref($scalar) .")", $scalar); close $scalar; # scalar como um arrayref my @array = ('Vermelho', 'Azul', 'Preto', 'Amarelo', 'Branco'); $scalar = \@array; # ABREVIAÇÂO: $scalar = ['Vermelho', 'Azul', 'Preto', 'Amarelo', 'Branco']; logger("Scalar como arrayref (". ref($scalar) .")", $scalar); # scalar como um hashref my %hash = ( nome => 'João Ferreira', idade => 20, cores_favoritas => ['Verde', 'Preto', 'Amarelo'] ); $scalar = \%hash; # ABREVIAÇÃO: $scalar = { nome => 'João Ferreira', idade => 20, cores_favoritas => [...] }; logger("Scalar como hashref (". ref($scalar) .")", $scalar); # scalar como um coderef (referencia de função anonima) $scalar = sub { say "Isso é um coderef em Perl" }; logger("Scalar como coderef (". ref($scalar) .")", $scalar); # scalar como um objeto # bless [data_struct], [class_name] $scalar = bless { nome => 'João Ferreira', idade => 20 }, 'Pessoa'; logger("Scalar como um objeto (". ref($scalar) .")", $scalar); ##################################### ## sub log para verbosidade ##################################### sub logger { my ($message, $var) = @_; say sprintf("DEBUG: %s \n%s\n\n", $message, Dumper($var)) if $ENV{DEBUG}; }
Cadastro usando arquivos .txt para guardar dados
Calculando a média entre dois valores
check_mem.pl - Plugin Nagios para checar consumo de RAM
Nenhum comentário foi encontrado.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Não consigo instalar o WineHQ no meu notebook vaio FE15 (Debian) (7)
Montar Partição para usar no Timeshift (8)
Instalação da Imagem ISO do Tails (8)
Não consigo atualizar para LinuxMint 22 com o Mintupdate (7)