#!/usr/bin/perl -w
# 印出某使用者的公開個人資訊. 使用者代號來自命令列參數 (只能有一個).
# http://www.cyut.edu.tw/~ckhung/b/pl/

use strict;
my (
    @field,				# 各個欄位
    $f,
    $i
);

open PASSWD, "< /etc/passwd" or die "Can't open /etc/passwd!\n";
while (<PASSWD>) {			# 對檔案內的每列做 ...
    last if $_ =~ m/^$ARGV[0]:/;	# 找到我們要 finger 的人了嗎?
}
close PASSWD;
@field = split /:/, $_;			# 把整列拆開
@field = split /,/, $field[4];		# 把 "個人資訊" 欄位再拆成幾個小欄位

for ($i=$#field+1; $i<4; ++$i) {	# 把沒有定義的欄位 ...
    $field[$i] = "";			# 設定成空白
}					# 要不然用到時會出現
					# "Use of uninitialized value ..."

print <<"eof";
Login:   $ARGV[0]
Name:	 $field[0]
Office:	 $field[1]
Tel (O): $field[2]
Tel (H): $field[3]
eof

