#!/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 () { # 對檔案內的每列做 ... 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