#!/usr/local/bin/perl sub inverso { #Aņade la secuencia ANSI de escape para video inverso return "@_"; } sub negrita { #Aņade la secuencia ANSI de escape para letra resaltada return "@_"; } sub borra { #Borra pantalla print ""; } sub normal { #Restablece modo normal print ""; } &borra; $dirSep = "/"; #Solo para MS-DOS if ($ARGV[0] eq "" ) { $dir = $dirSep; }else { $dir = $ARGV[0]; } #Abre directorio opendir( DIR, $dir ); while( $fichero = readdir( DIR ) ) { push( @ficheros, $fichero ); } closedir( DIR); #Cabecera del listado $msg = "Listado del directorio ".&inverso( $dir ); print "$msg\n";&normal; print "=" x (length($msg) - length(&inverso(""))); print "\n"; if ( $dir !~ m!\\$! ) { $prefijo = $dir.$dirSep; } else { $prefijo = "$dirSep"; } foreach (sort @ficheros ) { print &inverso( $_ ) if -f "$prefijo$_"; print &negrita( $_ ) if -d "$prefijo$_"; &normal; print "\n"; }