#!/usr/bin/perl -w0777 @users{split /\s+/, }=(); while(sleep 2) { for my $n (keys %users) { $_ = `users`; $state = ''; $users{$n} = 1, $state = 'in' if !$users{$n} && /\b$n\b/; $users{$n} = 0, $state = 'out' if $users{$n} && !/\b$n\b/; print localtime() . " $n has logged $state\n" if $state; } }