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.748 ]
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}; }
Programa que separa os dígitos de um inteiro
Cadastro usando arquivos .txt para guardar dados
Nenhum comentário foi encontrado.
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Ativando o Modo Noturno via Linha de Comando no GNOME/Wayland
Preparando pendrive com GNU/Linux [Corretamente!]
Instalando Google Chrome no Fedora 40
Habilitando a importação de senhas no Firefox
Como corrigir o erro do VirtualBox travar a máquina virtual em tela cheia
Como saber quantas impressões foram feitas pela impressora? (3)
Altera pacote .pkg.tar do Arch Linux (17)
alterar o tamanho da tela do monitor via xrandr (2)