Funzione Perl open
Descrizione
Questa funzione apre un file utilizzando l'handle di file specificato. L'handle del file può essere un'espressione, il valore risultante viene utilizzato come handle. Se non viene specificato alcun nome di file, una variabile con lo stesso nome dell'handle di file utilizzato (dovrebbe essere una variabile scalare con un valore di stringa che fa riferimento al nome del file). Il nome file speciale "-" si riferisce a STDIN e "> -" si riferisce a STDOUT.
Sintassi
Di seguito è riportata la semplice sintassi per questa funzione:
open FILEHANDLE, EXPR, LIST
open FILEHANDLE, EXPR
open FILEHANDLE
Valore di ritorno
Questa funzione restituisce o in caso di errore e 1 in caso di successo.
Esempio
Di seguito è riportata la sintassi per aprire file.txt in modalità di sola lettura. Qui il segno meno di <indica che il file deve essere aperto in modalità di sola lettura.
open(DATA, "<file.txt");
Qui DATA è l'handle del file che verrà utilizzato per leggere il file. Ecco l'esempio che aprirà un file e ne stamperà il contenuto sullo schermo.
#!/usr/bin/perl
open(DATA, "<file.txt");
while(<DATA>) {
print "$_";
}
Di seguito è riportata la sintassi per aprire file.txt in modalità di scrittura. Qui il segno meno di> indica che il file deve essere aperto in modalità di scrittura -
open(DATA, ">file.txt");
Questo esempio in realtà tronca (svuota) il file prima di aprirlo per la scrittura, il che potrebbe non essere l'effetto desiderato. Se desideri aprire un file in lettura e scrittura, puoi inserire un segno più prima dei caratteri> o <.
Ad esempio, per aprire un file per l'aggiornamento senza troncarlo:
open(DATA, "+<file.txt");
Per troncare prima il file:
open DATA, "+>file.txt" or die "Couldn't open file file.txt, $!";
È possibile aprire un file in modalità di aggiunta. In questa modalità il punto di scrittura sarà impostato alla fine del file.
open(DATA,">>file.txt") || die "Couldn't open file file.txt, $!";
Un doppio >> apre il file per l'aggiunta, posizionando il puntatore del file alla fine, in modo da poter iniziare immediatamente ad aggiungere informazioni. Tuttavia, non puoi leggere da esso a meno che non ci metti anche un segno più -
open(DATA,"+>>file.txt") || die "Couldn't open file file.txt, $!";
Di seguito è riportata la tabella che fornisce i possibili valori delle diverse modalità.
Entities Definition
< or r Read Only Access
> or w Creates, Writes, and Truncates
>> or a Writes, Appends, and Creates
+< or r+ Reads and Writes
+> or w+ Reads, Writes, Creates, and Truncates
+>> or a+ Reads, Writes, Appends, and Creates