Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use strict;
- use warnings;
- use feature 'say';
- package Archivo;
- sub new
- {
- my $class = shift;
- my $self = {};
- bless $self,$class;
- return $self;
- }
- sub setNombre
- {
- $_[0]->{NOMBRE} = $_[1];
- }
- sub setDir
- {
- my $user = getlogin();
- $_[0]->{DIR} = $_[1];
- $_[0]->{FULLDIR} = "/home/" . $user ."/" . $_[0]->{DIR};
- }
- sub leer
- {
- my $archivo = $_[0]->{FULLDIR}."/".$_[0]->{NOMBRE};
- say $_[0]->{FULLDIR};
- open (ARCHIVO,$archivo);
- while (<ARCHIVO>)
- {
- chomp($_);
- say $_;
- }
- close ARCHIVO;
- }
- sub escribir
- {
- open(ARCHIVO,">> $_[0]->{FULLDIR}/$_[0]->{NOMBRE}") || die "No pudo crearse: $!";
- say "Escriniendo en $_[0]->{NOMBRE}";
- say "Escribe EOF para terminar de escribir";
- while(chomp(my $nombre=<STDIN>))
- {
- last if $nombre eq "EOF";
- print ARCHIVO "$nombre\n";
- }
- print ARCHIVO "Hola";
- }
- package LeerArchivo;
- use base qw(Archivo);
- sub recorrer
- {
- my $dir = $_[0]->{DIR};
- my (@archivos,@dirs) = ((),()); # Creamos dos arrays vacios
- opendir(my $recorrer, $dir) || die "Error :( $! \n";
- while(readdir $recorrer)
- {
- if (-d $dir . "/" . $_)
- {
- push (@dirs,$_);
- }
- if (-f $dir . "/" . $_)
- {
- push (@archivos,$_);
- }
- }
- @{$_[0]->{ARCHIVOS}} = @archivos;
- @{$_[0]->{DIRECTORIOS}} = @dirs;
- }
- sub getDirs
- {
- return @{$_[0]->{DIRECTORIOS}} if @{$_[0]->{DIRECTORIOS}};
- }
- sub getFiles
- {
- return @{$_[0]->{ARCHIVOS}} if @{$_[0]->{ARCHIVOS}};
- }
- sub getName {
- return $_[0]->{NOMBRE};
- }
- package main;
- my $archivo = LeerArchivo->new();
- $archivo->setNombre('ejemplo.txt');
- $archivo->setDir(".");
- $archivo->leer();
- $archivo->escribir();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement