in reply to next if loop

@SKIP = ('adrian','adm','sys','alcatel'); foreach $login ($SKIP) { next if $login eq $SKIP; }

You're not iteratating over the array @SKIP, but the scalar $SKIP (which I don't see defined in your code). These are two completely seperate values, though they share a typeglob.

use strict would have caught this error, unless $SKIP is defined elsewhere in your code (which I think you meant to do, since that's what you're comparing $login to).

You could also do what you want with:

@SKIP = grep { $_ ne $SKIP } 'adrian','adm','sys','alcatel';

----
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
-- Schemer

: () { :|:& };:

Note: All code is untested, unless otherwise stated