diff options
Diffstat (limited to 'gnu/usr.bin/perl/eg/who')
-rw-r--r-- | gnu/usr.bin/perl/eg/who | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gnu/usr.bin/perl/eg/who b/gnu/usr.bin/perl/eg/who new file mode 100644 index 000000000000..ac15246c9fa1 --- /dev/null +++ b/gnu/usr.bin/perl/eg/who @@ -0,0 +1,13 @@ +#!/usr/bin/perl +# This assumes your /etc/utmp file looks like ours +open(UTMP,'/etc/utmp'); +@mo = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec); +while (read(UTMP,$utmp,36)) { + ($line,$name,$host,$time) = unpack('A8A8A16l',$utmp); + if ($name) { + $host = "($host)" if ord($host); + ($sec,$min,$hour,$mday,$mon) = localtime($time); + printf "%-9s%-8s%s %2d %02d:%02d %s\n", + $name,$line,$mo[$mon],$mday,$hour,$min,$host; + } +} |