Pular para o conteúdo

Manipulação de Arquivos Orientada a Objetos

Sabemos que Perl não é uma linguagem totalmente orientada a objetos e vejo muitas pessoas dizendo que trabalhar com o paradigma orientado a objetos em Perl é complicado ou que Perl fica impossível de ser lida.

A verdade é que a orientação a objetos em Perl é uma excelente prática e por muitas vezes faz com que seu código fique mais legível e organizado, fazendo com que você consiga reaproveitar seus códigos se você escrever suas aplicações da forma correta.

Abaixo vou mostrar de forma breve e simples como manipular arquivos usando a classe IO::File
Daniel Vinciguerra dvinciguerra
Hits: 3.025 Categoria: Perl Subcategoria: Manipulação de arquivos
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Sabemos que Perl não é uma linguagem totalmente orientada a objetos e vejo muitas pessoas dizendo que trabalhar com o paradigma orientado a objetos em Perl é complicado ou que Perl fica impossível de ser lida.

A verdade é que a orientação a objetos em Perl é uma excelente prática e por muitas vezes faz com que seu código fique mais legível e organizado, fazendo com que você consiga reaproveitar seus códigos se você escrever suas aplicações da forma correta.

Abaixo vou mostrar de forma breve e simples como manipular arquivos usando a classe IO::File
Download manipulando-arquivos.pl Enviar nova versão

Esconder código-fonte

#!/usr/bin/env perl 
# 2016 (c) Daniel Vinciguerra

# carrega os pragmas mais comuns
use 5.10.0;
use strict;
use warnings;

use IO::File;

# constante
my $FILE_PATH = 'file';

# iniciando um novo objeto IO::File para escrita
my $fout = IO::File->new($FILE_PATH, "w");
if(defined $fout){
    # escrevendo no arquivo
    say $fout "Ola Perl, este é um exemplo de escrita em arquivo!";
    $fout->close;
}

# verificando se o arquivo existe
say "Arquivo '${FILE_PATH}' encontrado!" if -e $FILE_PATH;


# iniciando um novo objeto IO::File para leitura
my $fin = IO::File->new($FILE_PATH, "r");
if(defined $fin){
    # lendo do arquivo
    say <$fin>;
    $fin->close;
}

Manipulação de arquivos

Compilar e mover

Shadow Post It

arruma_nomes.pl

Adiciona-Altera senhas/usuarios no sistema

#1 Comentário enviado por removido em 24/02/2016 - 18:53h
Pensei que encontraria um exemplo do comando bless.

----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif

# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden
#2 Comentário enviado por dvinciguerra em 24/02/2016 - 19:18h
Ola listeiro_037,

O comando bless do Perl serve exatamente para criar um objeto!

my $novo_obj = bless { nome => 'João' }, "Pessoa";

Na linha acima o primeiro parâmetro de bless deve ser uma referencia de hash e a segunda deve ser o nome da classe. Levando em conta isso, a forma correta de se criar uma classe em Perl seria usando o comando bless no retorno da sub new (construtor), conforme abaixo.


package Pessoa;

sub new {
my $class = shift;
return bless { nome => 'Joao' }, $class;
}

package main;

my $p = Pessoa->new;
print $p->{nome};


Caso tenha alguma duvida sobre isso me chame em privado ou me mande um e-mail que lhe explico como tudo funciona!

Grande abraço,

Contribuir com comentário

Entre na sua conta para comentar.