En Perl , un FileHandle asocia un nombre a un archivo externo, que se puede usar hasta el final del programa o hasta que se cierre FileHandle. En resumen, un FileHandle es como una conexión que se puede usar para modificar el contenido de un archivo externo y se le da un nombre a la conexión (FileHandle) para un acceso más rápido y fácil.
Los tres FileHandles básicos en Perl son STDIN, STDOUT y STDERR, que representan dispositivos de entrada estándar, salida estándar y error estándar, respectivamente.
El manejo de archivos generalmente se realiza a través de la función abierta.
Sintaxis: open(FileHandle, Mode, FileName);
Parámetros:
- FileHandle- La referencia al archivo, que se puede usar dentro del programa o hasta su cierre.
- Modo- Modo en el que se va a abrir un archivo.
- FileName: el nombre del archivo que se va a abrir.
Además, Mode y FileName se pueden combinar para formar una sola expresión para abrir.
Sintaxis: open(FileHandle, Expression);
Parámetros:
- FileHandle- La referencia al archivo, que se puede usar dentro del programa o hasta su cierre.
- ExpressionMode y FileName se juntaron.
FileHandle se cierra mediante la función de cierre.
Sintaxis: close(FileHandle);
Parámetros:
- FileHandle: el FileHandle que se cerrará.
La lectura de un FileHandle se puede hacer a través de la función de impresión.
Sintaxis: print(<FileHandle>);
Parámetros:
- FileHandle- FileHandle abierto en modo de lectura o un modo similar.
También se puede escribir en un archivo a través de la función de impresión.
Sintaxis: print FileHandle
Parámetros de string:
- FileHandle- FileHandle abierto en modo de escritura o un modo similar.
- String: la string que se insertará en el archivo.
Modo | Explicación |
---|---|
“<“ | Modo de solo lectura |
“>” | Crea un archivo (si es necesario), borra el contenido del archivo y lo escribe |
“>>” | Crea un archivo (si es necesario), lo agrega al archivo |
“+<“ | Lee y escribe pero NO crea |
“+>” | Crea archivo (si es necesario), borra, lee y escribe |
“+>>” | Crea archivo (si es necesario), lee y agrega |
Ejemplos:
considere un archivo Hello.txt que contenga la string «Bienvenido a GeeksForGeeks!!!» inicialmente.
- Modo = «<«
Este es el modo de solo lectura. Este modo se usa para leer el contenido línea por línea del archivo.#!/usr/bin/perl
# Opening a File in Read-only mode
open
(r,
"<"
,
"Hello.txt"
);
# Printing content of the File
print
(<r>);
# Closing the File
close
(r);
Producción:
- Modo = “>”
Este es el modo de solo escritura. El contenido original del archivo se borra una vez que se abre en este modo. Crea un nuevo Archivo con el mismo nombre, si no se encuentra uno.#!/usr/bin/perl
# Opening File Hello.txt in Read mode
open
(r,
"<"
,
"Hello.txt"
);
# Printing the existing content of the file
print
(
"Existing Content of Hello.txt: "
. <r>);
# Opening File in Write mode
open
(w,
">"
,
"Hello.txt"
);
# Set r to the beginning of Hello.txt
seek
r, 0, 0;
print
"\nWriting to File..."
;
# Writing to Hello.txt using print
print
w
"Content of this file is changed"
;
# Closing the FileHandle
close
(w);
# Set r to the beginning of Hello.txt
seek
r, 0, 0;
# Print the current contents of Hello.txt
print
(
"\nUpdated Content of Hello.txt: "
.<r>);
# Close the FileHandle
close
(r);
Producción:
- Mode=”>>”
Este es el Modo Agregar. El contenido original del archivo no se borra cuando se abre en este modo. Este modo no se puede usar para sobrescribir ya que la string siempre se adjunta al final. Crea un nuevo Archivo con el mismo nombre, si no se encuentra uno.#!/usr/bin/perl
# Opening File Hello.txt in Read mode
open
(r,
"<"
,
"Hello.txt"
);
# Printing the existing content of the file
print
(
"Existing Content of Hello.txt: "
. <r>);
# Opening the File in Append mode
open
(A,
">>"
,
"Hello.txt"
);
# Set r to the beginning of Hello.txt
seek
r, 0, 0;
print
"\nAppending to File..."
;
# Appending to Hello.txt using print
print
A
" Hello Geeks!!!"
;
# close the FileHandle
close
(A);
# Set r to the beginning of Hello.txt
seek
r, 0, 0;
# Print the current contents of Hello.txt
print
(
"\nUpdated Content of Hello.txt: "
.<r>);
# Close the FileHandle
close
(r);
Producción:
- Modo = “+<“
Este es el modo de lectura y escritura. Esto se puede usar para sobrescribir una string existente en el archivo. No puede crear un nuevo archivo.#!/usr/bin/perl
# Open Hello.txt in Read-Write Mode
open
(rw,
"+<"
,
"Hello.txt"
);
# Print original contents of the File.
# rw is set to the end.
print
(
"Existing Content of Hello.txt: "
.<rw>);
# The string is attached at the end
# of the original contents of the file.
print
rw
"Added using Read-Write Mode."
;
# Set rw to the beginning of the File for reading.
seek
rw, 0, 0;
# Printing the Updated content of the File
print
(
"\nUpdated contents of Hello.txt: "
.<rw>);
# Close the FileHandle
close
(rw);
Producción:
- Modo = “+>”
Este es el modo de lectura y escritura. La diferencia entre “+<” y “+>” es que “+>” puede crear un nuevo archivo, si no se encuentra uno con el nombre, pero “+<” no.#!/usr/bin/perl
# Opening File Hello.txt in Read mode
open
(r,
"<"
,
"Hello.txt"
);
# Printing the existing content of the file
print
(
"Existing Content of Hello.txt: "
. <r>);
# Closing the File
close
(r);
# Open Hello.txt in Read-Write Mode
open
(rw,
"+>"
,
"Hello.txt"
);
# Original contents of the File
# are cleared when the File is opened
print
(
"\nContents of Hello.txt gets cleared..."
);
# The string is written to the File
print
rw
"Hello!!! This is updated file."
;
# Set rw to the beginning of the File for reading.
seek
rw, 0, 0;
print
(
"\nUpdated Content of Hello.txt: "
.<rw>);
# Closing the File
close
(rw);
Producción:
- Modo = “+>>”
Este es el modo de lectura adjunta. Esto se puede usar para leer desde un archivo, así como para agregarlo. Se crea un nuevo archivo con el mismo nombre, si no se encuentra uno.# Open Hello.txt in Read-Append Mode
open
(ra,
"+>>"
,
"Hello.txt"
);
# Set ra to the beginning of the File for reading.
seek
ra, 0, 0;
# Original content of the File
# is NOT cleared when the File is opened
print
(
"Existing Content of the File: "
. <ra>);
print
"\nAppending to the File...."
;
# The string is appended to the File
print
ra
"Added using Read-Append Mode"
;
# Set ra to the beginning of the File for reading.
seek
ra, 0, 0;
# Printing the updated content
print
(
"\nUpdated content of the File: "
. <ra>);
# Closing the File
close
(rw);
Producción:
- FileHandle: FileHandle del archivo que se seleccionará.
La salida se puede redirigir fuera de la consola y a un archivo mediante la función de selección.
Sintaxis: select FileHandle;
Parámetros:
Pasos:
- Abra un FileHandle para escribir, por ejemplo, «>», «>>», «+<«, «+>» o «+>>».
- Seleccione FileHandle usando la función de selección.
Ahora, todo lo que se imprime con la función de impresión se redirige al Archivo.
Ejemplo:
# Open a FileHandle in Write Mode. open(File, ">", "Hello.txt"); # This sets File as the default FileHandle select File; # Writes to File print("This goes to the File."); # Writes to File print File "\nThis goes to the File too."; # This sets STDOUT as default FileHandle select STDOUT; print("This goes to the console."); # Close the FileHandle. close(File);
Salida en la consola:
Contenido de Hello.txt:
Archivo original:
Archivo actualizado:
Publicación traducida automáticamente
Artículo escrito por KoushikMasavarapu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA