Cátedra: Osvaldo Clua
Fecha: Tercera Oportunidad - Primer Cuatrimestre 2005
Día: 21/06/2005
Tema: PERL
Desarrollar un comando PERL denominado “Scheduler.pl” que tiene por función armar la agenda de ejecución de pedidos del día.
Archivos de Pedidos
Nombre del Archivo: imprime33.ped (con 1 registro)
Pgarcia;2015;imprimir listado001 listado002 listado003;impresion de los listados de compras de mayo
Nombre del Archivo: tijuana.ped (con 7 registros)
M_gomez;2000;rankingcity.pl zonanorte.dat Parana;calculo de los totales de llamados de Parana-Norte
M_gomez;2001;imprimir salidacity
M_gomez;2010;rankingcity.pl zonasur.dat Parana;calculo de los totales de llamados de Parana-Sur
M_gomez;2011;imprimir salidacity
M_gomez;2030;rankingcity.pl zonaamba.dat Parana;calculo de los totales de llamados de Parana-AMBA
M_gomez;2031;imprimir salidacity
A_sanchez;saca_saldo.pl rosario28.dat 2 4 ccmayo28.sal;Saldos en Cta Cte de mayo en la sucursal 28
Archivos de Agenda
Nombre del Archivo: agenda200.sch (con 5 registros)
2015;imprimir listado001 listado002 listado003
2000;rankingcity.pl zonanorte.dat Parana
2001;imprimir salidacity
2010;rankingcity.pl zonasur.dat Parana
2011;imprimir salidacity
Nombre del archivo: agenda2030.sch (con 2 registros)
2030;rankingcity.pl zonaamba.dat Parana
2031;imprimir salidacity
Rechazados.dat (con 1 registro)
A_sanchez;saca_saldo.pl rosario28.dat 2 4 ccmayo28.sal;Saldos en Cta Cte de mayo en la sucursal 28
Archivos Procesados
imprime33.pro
tijuana.pro
#!/usr/bin/perl sub moverArchivos(){ @archivos=<*.ped>; foreach $archivo (@archivos) { `mv $archivo $archivo.pro` } } sub getFileList(){ @archivo=<*.pro>; return @archivo; } sub procesarArchivo { $regexp="([01][0-9]|2[0-3])[0-5][0-9]"; $rechazado=0; open($fdrech,">>rechazados")|| die "rechazdos: $!"; open($fd,"<@_")||die "@_: $!"; while(<$fd>){ chomp($_); if ($_ ne ""){ @campos=split(";",$_); if(@campos>3){ if($campos[1]=~$regexp){ $rechazado=0; } else { $rechazado=1; } } else { $rechazado=1; } if ($rechazado==1){ print $fdrech "$_\n"; } else { $hora=substr($campos[1],0,2); $minutos=substr($campos[1],2); if($minutos>29){ $hora++; if($hora==24) { $hora=="00"; } $minutos="00"; } else { $minutos="30"; } open($fdsc,">>scheduler$hora$minutos")||die "scheduler$hora$minutos[1]rechazdos: $!"; print $fdsc "$hora$minutos;$campos[2]\n"; close($fdsc); } } } close($fd); close($fdrech); } while (true) { print "Procesando...\n"; moverArchivos(); @archivos=getFileList(); foreach $archivo ( @archivos ) { procesarArchivo($archivo); } sleep(5); }