perl | Directorios con operaciones CRUD

Perl es un lenguaje de programación universal y multiplataforma que se utiliza principalmente para la manipulación de texto y se utiliza en el desarrollo de muchas aplicaciones de software como desarrollo web, aplicación de interfaz gráfica de usuario, etc. Se prefiere a otros lenguajes de programación porque es más rápido, potente y Perl tiene muchos accesos directos que ayudan a escribir un guión rápido, por lo que lleva menos tiempo escribir.
Un directorio se utiliza en lenguajes de programación para almacenar valores en forma de listas. Un directorio es bastante similar a un archivo. Al igual que un archivo, el directorio también permite realizar varias operaciones en él. Estas operaciones se utilizan para la modificación de un directorio existente o la creación de uno nuevo.

Las diferentes operaciones que se pueden realizar en un Directorio son:

  1. Creación de un nuevo Directorio
  2. Abriendo un directorio existente
  3. Lectura del contenido de un Directorio
  4. Cambiar una ruta de directorio
  5. Cerrar un directorio
  6. Eliminación de un directorio
Creación de un directorio

 
Para crear un directorio se usa mkdir(RUTA, MODO). Esta función ayuda a crear un nuevo directorio, si el usuario desea verificar que el archivo ya existe, puede hacerlo mediante la función -e . La ruta se establece mediante PATH utilizando el modo especificado por la función MODE.
Ejemplo:

#!/usr/bin/perl  
  
# Path of the directory
my $directory = 'C:\Users\GeeksForGeeks\Folder\Perl';  
  
# Creating a directory in perl  
mkdir($directory) or die "No $directory directory, $!";  
print "Directory created \n"; 

Producción:



 

Abriendo un directorio

 
Para abrir un directorio en Perl se usa una función abreviada opendir DIRHANDLE, PATH. La RUTA aquí es la ruta del directorio que se abrirá.
Ejemplo :

#!/usr/bin/perl  
  
my $directory = 'C:\Users\GeeksForGeeks\Folder';  
opendir (DIR, $directory) or die "No directory, $!";  
while ($file = readdir DIR) 
{  
    print "$file\n";  
}  
closedir DIR;

Producción:

 

Leer directorio en contexto escalar y de lista

 
Leer un directorio es una tarea común, ya que uno tiene que leer cada vez lo que está almacenado en los archivos para ejecutar el código o comprender el código. Para leer un directorio, se utiliza readdir DIRHANDLE. Hay dos formas en que un usuario puede leer el directorio, es decir, en contexto de lista y contexto escalar.
En el contexto de la lista, el código devuelve el resto de las entradas en el directorio y si las entradas están vacías en los directorios, los valores indefinidos se devolverán en el contexto escalar y la lista vacía en el contexto de la lista.
Contexto escalar:
Ejemplo:

#!/usr/bin/perl  
use strict; 
use warnings; 
use 5.010; 
  
# Path of the directory
my $directory = shift // 'C:\Users\GeeksForGeeks\Folder'; 
  
# Opening the directory
opendir my $dh, $directory or 
die "Could not open '$directory' for reading '$!'\n"; 
  
# Printing content of the directory
while (my $content = readdir $dh) 
{ 
    say $content; 
} 
  
# Closing the directory
closedir $dh; 

Producción:

Contexto de la lista:

#!/usr/bin/perl  
use strict;  
use warnings;  
use 5.010;  
  
# Path of the directory
my $directory  = shift // 'C:\Users\GeeksForGeeks\Folder';  
  
# Opening the directory
opendir my $dh, $directory or 
die "Could not open '$directory' for reading '$!'\n";  
  
# Reading content of the file
my @content = readdir $dh;  
  
# Printing content of the directory
foreach my $content (@content) 
{  
    say $content;  
}  
  
# Closing the directory
closedir $dh;

Producción:

 

Cambiar un directorio

 
Para cambiar un directorio se utiliza la función chdir(). Esta función ayuda a cambiar el directorio y enviarlo a una nueva ubicación. La función chdir() cuando se llama con un script, cambia el directorio para el resto del script. El directorio en el terminal no se cambiará si se llama a esta función dentro de un script. Por otro lado, cuando se llama directamente con una nueva ruta de directorio, los cambios se reflejan al mismo tiempo en la terminal.
Ejemplo 1: cuando se llama a chdir() dentro de un script

#!/usr/bin/perl
  
# Module to return 
# current directory path
use Cwd;
  
# Path of new directory
$directory = "C:/Users";
  
# Printing the path of current directory
# using cwd function
print "The current directory is ";
print(cwd);
print "\n"; 
  
# Changing the directory using chdir function
chdir($directory) or 
      die "Couldn't go inside $directory directory, $!";
  
# Printing the path of changed directory
print "Directory has been changed to $directory\n";
print "The current directory is ";
print(cwd);
print "\n"; 



 
Ejemplo de salida 2: cuando se llama a chdir() directamente en la terminal

Cerrar un directorio

 
Para cerrar un directorio closedir se utiliza DIRHANDLE. Aquí, DIRHANDLE es el identificador del directorio con el que se abre utilizando la función opendir.
Ejemplo:

#!/usr/bin/perl
  
# Directory which is to be opened
$dirname = "C:/Users/GeeksForGeeks";
  
# Opening the directory 
# using opendir function
opendir (dir, $dirname) || die "Error $dirname\n";
  
# Printing content of the directory
# using readdir function
while(($filename = readdir(dir))) 
{
    print("$filename\n");
}
  
# Closing the directory using closedir 
closedir(dir);

Producción:

 

Eliminación de un directorio

 
La eliminación de un directorio se puede realizar mediante la función rmdir. Esta función elimina el directorio especificado por NOMBRE DE ARCHIVO solo si ese directorio está vacío, si tiene éxito, devuelve verdadero, de lo contrario, falso.
Ejemplo:

#!/usr/bin/perl  
$directory = "C:/Users/GeeksForGeeks/Folder/Perl";  
  
# This removes perl directory  
rmdir($directory ) or
      die "Couldn't remove $directory directory, $!";  
        
print "Directory removed \n";  

Producción:


Publicación traducida automáticamente

Artículo escrito por praveensharma8 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *