[Perl] FileHandles en Windows....
Rodrigo Gallardo
lgallardo@computacion.cs.cinvestav.mx
Tue, 2 Apr 2002 14:25:43 -0600
Gunnar Wolf writes:
> Hola!
>=20
> > Tengo una rutina que me abre archivos NDB, que son simplemente=
archivos
> > planos haciendose pasar como tablas, que tienen una estructura as=ED=
:
> >
> > NID|KEYCARD|TIMESTAMP|EVENTCODE
> > 2|114|1005228840|14
> > 4|18|1005228900|14
> > 5|151|1005228960|16
> > 6|159|1005229020|14
> > 7|151|1005229020|14
> > .......
>=20
> Antes de continuar, te vuelvo a sugerir echarle un ojo a la funci=F3=
n tie de
> Perl (perldoc -f tie, o si est=E1s en Windows, debe estar dentro de =
la
> p=E1gina de ayuda de perlfunc). Esto te permite hacer algo as=ED: (t=
omado de
> esa p=E1gina)
>=20
> # print out history file offsets
> use NDBM_File;
> tie(%HIST, 'NDBM_File', '/usr/lib/news/history', =
1, 0);
> while (($key,$val) =3D each %HIST) {
> print $key, ' =3D ', unpack('L',$val), "\n";
> }
> untie(%HIST);
>=20
> O sea, maneja por t=ED todo el indexado, ordenado, entrada y salida.=
.. Te
> refieres a lo que tienes en el archivo con un simple hash. Es muy ve=
rs=E1til
> y r=E1pido - Aunque, claro, mucho m=E1s limitado que una base de dat=
os real.
Con la (posible) desventaja, de que el archivo no se guarda en disco
como texto plano, sino como un formato binario que se encarga, del
indexad, ordenado, etc. Si los datos son solo para uso desde perl, no
hay bronca, pero si los genera otra cosa, habr=EDa que convertirlos.
--=20
Rodrigo
PGP key 1024D/ADC9BC28 2002-02-26 [expires 2004-02-26]
Fingerprint: 7C81 E60C 442E 8FBC D975 2F49 0199 8318 ADC9 BC28