+ All Categories
Home > Documents > Ficheros y directorios

Ficheros y directorios

Date post: 13-Jun-2015
Category:
Upload: jose-luis-martinez
View: 471 times
Download: 1 times
Share this document with a friend
Description:
Presentación sobre ficheros y directorios en Perl para el curso Perl desde zero.
Popular Tags:
25
Ficheros y Directorios Curso Perl desde zero Nov 2012 Jose Luis Martínez Barcelona.pm
Transcript
Page 1: Ficheros y directorios

Ficheros y Directorios

Curso Perl desde zeroNov 2012

Jose Luis MartínezBarcelona.pm

Page 2: Ficheros y directorios

El sistema de ficheros!

Page 3: Ficheros y directorios

Como abro un fichero?open (my $fh, ???, $filename);

Page 4: Ficheros y directorios

Para leeropen (my $fh, “<“, $filename);

Page 5: Ficheros y directorios

Para para escribiropen (my $fh, “>“, $filename);

Page 6: Ficheros y directorios

Y como leo?open (my $fh, “<“, $filename);while (my $line = <$fh>) { chomp $line; …}

Page 7: Ficheros y directorios

Y como leo?open (my $fh, “<“, $filename);while (my $line = <$fh>) { chomp $line; …}

Page 8: Ficheros y directorios

Y como escribo?open (my $fh, “>“, $filename);foreach my $line (@array_with_lines) { print $fh “$line\n”;}

Page 9: Ficheros y directorios

Y como escribo?open (my $fh, “>“, $filename);foreach my $line (@array_with_lines) { print $fh “$line\n”;}

Page 10: Ficheros y directorios

Te suena?• < LEER• > ESCRIBIR (Cuidado! Crea un fichero nuevo o vacía

el que existe)• >> ESCRIBIR AL FINAL• +< LEER Y ESCRIBIR• +> ESCRIBIR (ah!... Y querré leer) (Vacía el

fichero )

Page 11: Ficheros y directorios

Y si te suena tanto…• | PIPE

• |-open (my $fh, “|-”, “text2img –png –output

file.png”);print $fh “Texto mega-chulo”;• -|open (my $fh, “-|”, “md5sum $fichero”);my $md5 = <$fh>; # <- El md5sum del fichero!!!

Page 12: Ficheros y directorios

Cada vez que haces pipe a un programa para hacer algo que ya sabe hacer Perl, Dios mata a un gatito.

Consulta CPAN para salvar a los gatitos

Page 13: Ficheros y directorios

Gracias por no hacerlo

Page 14: Ficheros y directorios

Rizando el rizo• -|- Quiero escribir a un programa, y recoger su salida

en una variable.

Page 15: Ficheros y directorios

Rizando el rizo• -|- Quiero escribir a un programa, y recoger su salida

en una variable.

Ver: man perlipc

Page 16: Ficheros y directorios

Ya estoyclose ($fh);

Page 17: Ficheros y directorios

Haciéndolo mejor

open (my $fh, “>“, $filename) or die “Error: $!”;while (…) { print $fh $line or die “Error writing: $!”; …}close($fh) or die “Error closing: $!”;

Page 18: Ficheros y directorios

Haciéndolo (aún) mejoruse autodie;open (my $fh, “>“, $filename);while (…) { print $fh $line; …}close($fh);

Page 19: Ficheros y directorios
Page 20: Ficheros y directorios

Más variado

Page 21: Ficheros y directorios

Haciéndolo más variado

• ¿Tengo que leer línea a línea?read($fh, $var, 10);

• $/ (INPUT_RECORD_SEPARATOR){ local $/ = “a”; $record = <$fh>; }

• seek– Moverte por un fichero

Page 22: Ficheros y directorios

Operadores unarios

Page 23: Ficheros y directorios

Operadores unarios

[…]-e File exists. -z File has zero size (is empty). -s File has nonzero size (returns size in bytes). -f File is a plain file. -d File is a directory. -l File is a symbolic link.[…]

Page 24: Ficheros y directorios

Operadores unariosif (-d $file) { inspect_dir($file);} elsif (-f $file){ process_file($file);}

Page 25: Ficheros y directorios

¿Y qué pasa con los directorios?opendir(my $dh, $some_dir) || die "can't opendir

$some_dir: $!";@dot_files = grep { /^\./ && -f "$some_dir/$_" }

readdir($dh);closedir $dh;


Recommended