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.933 ]
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}; }
Saiba quanto de energia seu PC gasta aproximadamente por mês
Separa os dígitos de um número
Lendo o conteúdo de uma página da Internet
Escrevendo varias linhas em um arquivo qualquer
Nenhum comentário foi encontrado.
Como aprovar Pull Requests em seu repositório Github via linha de comando
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como Definir o Painel Principal em Múltiplos Monitores no Linux Mint
Minecraft Launcher para Arch Linux
Instalar o Apache, MySQL e PHP no Oracle Linux 8
Resolvendo o erro "libQt6Widgets.so.6: cannot open shared object file" no Linux
Como bloquear e desbloquear papel de parede no Ubuntu 24.04 (0)
Mouse bluetooth no Debian 12.10. (0)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... (2)