Si se quiere obtener información más detallada como el número de enlaces a un
fichero o el uid
del propietario de un fichero es necesario recurrir a
la función stat. El operando de stat
es un fichero o un
nombre de fichero. La función stat devuelve
bien una lista vacía (en caso de error) o una lista de 13 elementos
(véase la tabla 2.2).
Los argumentos atime
, mtime
y ctime
indican cuantos segundos han pasado desde el comienzo de 1970 MUT
(Midnight Universal Time).
En el siguiente ejemplo, en la línea 1 el uso del operador glob
nos permite
la expansión de los comodines tipo shell:
DB<1> @f = glob('xml*') DB<2> p "@f" xml xmlparser.pl xmlparserinput.xml DB<3> @a = stat "xmlparser.pl" DB<4> x @a 0 2051 1 2171300 2 33261 3 1 4 1007 5 1007 6 0 7 191 8 1112287076 9 1087853581 10 1099385099 11 4096 12 8
La función localtime
permite convertir números en formato MUT en una cadena tipo fecha:
DB<1> @a = stat "xmlparser.pl" DB<2> use constant mtime => 9 DB<3> x $a[mtime] 0 1087853581 DB<4> p scalar(localtime $a[mtime]) Mon Jun 21 22:33:01 2004
Cuando se llama a stat
sobre un enlace simbólico, stat
devuelve información sobre el fichero apuntado, no sobre el enlace.
Si se trata de un enlace en vez de un fichero, use la función lstat
.
Si el operando no es un enlace simbólico lstat
devuelve la
misma información que stat
. Cuando no se indica operando,
ambos stat
y lstat
usan la variable por defecto $_
.
Casiano Rodríguez León