#!/usr/bin/perl -w
# 數數看 stdin 輸入的資料, 或命令列上所指定的檔案內所讀入的資料,
# 每列的長度是多少.
# http://www.cyut.edu.tw/~ckhung/b/pl/

# 這個程式有點複雜, 新手可以略過它的內容, 只要會用就可以了:
# 1. 處理檔案:	./length rencase_loop fruit.txt sum_stdin
# 2. 處理stdin:	ls /etc/rc.d | ./length
# 3. 混著處理:	ls /etc/rc.d | ./length rencase_loop - fruit.txt sum_stdin
# 還要知道你之所以能以各種方式執行它, 全都是 <> 的功勞
# (而不是因為程式本身的判斷)

while (<>) {			# 對鍵盤上輸入或從檔案讀入的每列做 ...
    print "$ARGV:" if $. == 1;	# 看到每個檔案的第一列時印檔名. 見 perlvar(1)
    chomp;			# 去掉一列最後面的換列字元
    print " ", length($_);	# 印出它的長度.
    if (eof) {			# 處理完每個檔案... . 見 perlfunc(1)
	print "\n";		# 就印換列
	close ARGV;		# 且將 $. 歸零
    }
}

