Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Volvemos al ataque. Yo también quiero hacerme famoso colgando módulos de Perl (es broma) y estoy intentando hacer uno. Y tengo algunas dudas, sobre todo a la hora de leer los datos para escribirlos en el archivo.
Using perl Syntax Highlighting
package volumen;
use strict;
use warnings;
use diagnostics;
use File::Slurp;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw( lee escribe );
our $VERSION = 0.01;
#Declaramos las variables
my @volumen_cono;
my @datos_cono;
my $nombre_archivo;
my $lineas;
my $renglones;
my $datos_cono;
my $final;
#Leemos el archivo que contiene los datos
sub lee{
$nombre_archivo=shift;
@volumen_cono=open (FILE, "<$nombre_archivo") || die "no se puede leer fichero";
while ($lineas=@volumen_cono){
push @datos_cono, split(/\s+/,$lineas);
}
close (FILE);
return \@datos_cono;
}
# Leemos los datos
sub escribe {
$nombre_archivo = shift;
$datos_cono = shift;
$final = '';
while ($renglones=@volumen_cono) {
$final= join(" ",$renglones );
}
#Escribimos el fichero
open (FILE, ">$nombre_archivo" );
print FILE $final;
close(FILE);
}
1;
use strict;
use warnings;
use diagnostics;
use File::Slurp;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw( lee escribe );
our $VERSION = 0.01;
#Declaramos las variables
my @volumen_cono;
my @datos_cono;
my $nombre_archivo;
my $lineas;
my $renglones;
my $datos_cono;
my $final;
#Leemos el archivo que contiene los datos
sub lee{
$nombre_archivo=shift;
@volumen_cono=open (FILE, "<$nombre_archivo") || die "no se puede leer fichero";
while ($lineas=@volumen_cono){
push @datos_cono, split(/\s+/,$lineas);
}
close (FILE);
return \@datos_cono;
}
# Leemos los datos
sub escribe {
$nombre_archivo = shift;
$datos_cono = shift;
$final = '';
while ($renglones=@volumen_cono) {
$final= join(" ",$renglones );
}
#Escribimos el fichero
open (FILE, ">$nombre_archivo" );
print FILE $final;
close(FILE);
}
1;
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Y aquí os dejo el programa principal, que hace la llamada al módulo:
Using perl Syntax Highlighting
use strict;
use warnings;
use volumen;
my $datos_cono = [ ['2','3']];
escribe( "datos.dat", $datos_cono );
use warnings;
use volumen;
my $datos_cono = [ ['2','3']];
escribe( "datos.dat", $datos_cono );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
En este ejemplo, me crea el archivo pero está vacío y no sé en qué me falla. El script lo he hecho con más subrutinas de las que necesito sobre todo para practicar.
Un saludo,
Gonzalo