Sigo con el ejercicio y modificando, estoy con el apartado opción
-g (mostrar los grupos a los que pertenece el usuario...).
Me comentaste que debería usar un
hash en este caso, pero no sé cómo ponerlo.
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;
use POSIX;
my $archivo = 'etc/passwd';
# my %hgrupos;
open (USUARIO,$archivo) or die "No se puede abrir archivo $archivo: $!\n";
sub mostrar_grupos{
if ($ARGV[1] eq "-g")
{
my $i=0;
if(isdigit($ARGV[2]))
{
my $uid=`cut -d: -f3 "$archivo" | grep -w "$ARGV[2]"`;
if($uid != "")
{
foreach $archivo (@lineas)
{
my @grupos=split/:/,$linea;
if ($grupos[3]==$grupo){
print "usuario $grupos[0] pertenece al GID $grupo\n";
$i++;
}
}
}
else
print("UID no valido\n");
}
else
{
my $uid=`cut -d: -f1 $archivo | grep -w $ARGV[2]`;
if($uid != "")
{
foreach $archivo (@lineas)
{
my @grupos=split/:/,$linea;
if ($grupos[3]==$grupo){
print "usuario $grupos[0] pertenece al GID $grupo\n";
$i++;
}
}
}
else
print("Nombre de usuario no valido\n");
}
}
}
close (USUARIO) or die "No se puede cerrar archivo $archivo: $!\n";
Coloreado en 0.006 segundos, usando
GeSHi 1.0.8.4
También me siguen saliendo errores de "requires explicit package name at ejercicio.pl" y de otros tipo.