Rutinas para Acceso a archivos en PERL:
Autor : Joshué Moisés García Sánchez
Print HTML
Print >> EOF;
<HTML a COLOCAR>
EOF;
Open a File
open(MOVIE, "$database") or die "could not open the Movie Information file :\n$!\n";
$d=1;
while ($line = <MOVIE>)
{
($name[$d], $website[$d], $starring[$d], $runtime[$d],
$s[$d], $pic[$d], $rated[$d], $plot[$d]) =
split /;/, $line;
$d++
}
Other Form :
open (ORGDB,"<$database");
@ODB=<ORGDB>;
close (ORGDB);
foreach $rec (@ODB){
chomp($rec);
($a1,$a2,$a3,$a4,$a5,$a6)=split(/\|/,$rec);
}
Eliminar :
open (ORGDB,"<$database");
@ODB=<ORGDB>;
close (ORGDB);
open (DATABASE,">$database");
@DB=<DATABASE>;
foreach $rec (@ODB){
chomp($rec);
($ae,$be,$ce,$de,$ee,$fe)=split(/\|/,$rec);
if ($ae eq $FORM{'id'}){
print DATABASE "";
}else{
print DATABASE "$ae|$be|$ce|$de|$ee|$fe\n";
}
}
close (DATABASE);
Busqueda :
$query= $input{'text_string'};
$textfile='../demo/mm1.txt';
$header= <<"headerstuff";
Content-type: text/html\n\n
<html><head><title>Results</title></head>
<body bgcolor="white" text="#000080">
<h3>Results</h3>
<hr size=1 ><pre>
headerstuff
print $header;
open (INFILE, "<$textfile")or die "Can't open
$textfile\n" ;
while (<INFILE>){ print if s/$query/<font
color="#FF0000">$query<\/font>/; }
close (INFILE);
print "</pre></body></html>";
Editar :
open (ORGDB,"<$database");
@ODB=<ORGDB>;
close (ORGDB);
foreach $rec (@ODB){
chomp($rec);
($a1,$a2,$a3,$a4,$a5,$a6)=split(/\|/,$rec);
if ($a1 eq $FORM{id}){
$a5 =~ s/\+//g; #para cajas de texto multilineas
print "Content-type: text/html\n\n";
print "
<html>
<head>
<title>Editar</title>
</head>
<body>
<form method='POST' action='$this'>
<input type='hidden' name='op' value='retono_edicion'>
<input type='hidden' name='id' value='$a1'>
#Todas las cajas de edicion con value=token.
</form></body></html>/n";
Retorno de la edición :
$id = $FORM{id};
open (ORGDB,"<$database");
@ODB=<ORGDB>;
close (ORGDB);
open (DATABASE,">$database");
@DB=<DATABASE>;
foreach $rec (@ODB){
chomp($rec);
($nae,$nbe,$nce,$nde,$nee,$nfe)=split(/\|/,$rec);
if ($nae eq $id){
print DATABASE
"$id|$FORM{'nombre_carrera'}|$FORM{'tiempo_cursa'}|$FORM{'costo_mensualidad'}|$FORM{'descripcion'}|$FORM{'id_planestudios'}\n";
}else{ print DATABASE
"$nae|$nbe|$nce|$nde|$nee|$nfe\n"; }
}
close (DATABASE);
Guardar :
if ($op eq 'agregar') {
$id_carrera = &generatePassword;
########## VARIABLES CAPTURADAS DEL ENTORNO ##################
$nombre_carrera = $FORM{nombre_carrera};
$tiempo_cursa = $FORM{tiempo_cursa};
$costo_mensualidad = $FORM{costo_mensualidad};
$descripcion = $FORM{descripcion};
$id_planestudio = $FORM{id_planestudio};
$descripcion =~ tr/\n/+/;
$descripcion =~ tr/|/-/;
open (FILE1, ">>$database");
print FILE1
("$id_carrera|$nombre_carrera|$tiempo_cursa|$costo_mensualidad|$descripcion|$id_planestudio\n");
close(FILE1);
print "Location: $this?r=$id_carrera\n\n";
}
Edición avanzada
if ($op eq 'visualizar') {
open (ORGDB,"<$database");
@ODB=<ORGDB>;
close (ORGDB);
$blanca = 1;
print "Content-type: text/html\n\n";
print "
<html>
<head>
<meta http-equiv='Content-Type' content='text/html;
charset=windows-1252'>
<title>Editar y Eliminar Carreras</title>
</head>
<body>
<h1>Editor de Carreras</h1><br>
<table border='0' width='100%'>
<tr>
<td width='5%' bgcolor='#FF0000'
align='center'><b><font face='Arial'
color='#FFFFFF'>Eliminar</font></b></td>
<td width='5%' bgcolor='#FFCC66'
align='center'><b><font
face='Arial'>Editar</font></b></td>
<td width='25%' bgcolor='#DFDFDF'><b><font
face='Arial'>Nombre Carrera</font></b></td>
<td width='25%' bgcolor='#DFDFDF'><b><font
face='Arial'>Costo</font></b></td>
</tr>
\n";
foreach $rec (@ODB){
chomp($rec);
($id_carrera,$nombre_carrera,$tiempo_cursa,$costo_mensualidad,$descripcion,$id_planestudio)=split(/\|/,$rec);
if ($blanca == 1) {
print "
<tr>
<td width='5%' bgcolor='#E9E9E9' align='center'><font
face='Arial' size='2'><a
href='$this?op=eliminar&id=$id_carrera'>Eliminar</a></font></td>
<td width='5%' bgcolor='#E9E9E9' align='center'><font
face='Arial' size='2'><a
href='$this?op=editar&id=$id_carrera'>Editar</a></font></td>
<td width='25%' bgcolor='#E9E9E9'><font face='Arial'
size='2'>$nombre_carrera</font></td>
<td width='25%' bgcolor='#E9E9E9'><font face='Arial'
size='2'>$costo_mensualidad</font></td>
</tr>
\n";
$blanca = 0;
}
else {
print "
<tr>
<td width='5%' align='center'><font face='Arial'
size='2'><a
href='$this?op=eliminar&id=$id_carrera'>Eliminar</a></font></td>
<td width='5%' align='center'><font face='Arial'
size='2'><a
href='$this?op=editar&id=$id_carrera'>Editar</a></font></td>
<td width='25%'><font face='Arial'
size='2'>$nombre_carrera</font></td>
<td width='25%'><font face='Arial'
size='2'>$costo_mensualidad</font></td>
</tr>\n";
$blanca = 1;
}
}
print "
</table>
</body>
</html>\n";
exit();
}