Kデスクトップ環境

5.4. ユーザホストリクエスト

時には、機能上あるニックに対して全ユーザ名とホスト名を知る必要があります。フックでこういったことが生じ、ニックがアクションを起こした場合、ニックは$whoに存在し、ユーザホストデータは既に$user及び$hostに存在します。

一方、perl機能&userhostをコールしなければならない場合、そこに次のような3つの引数を与えます。ニックネーム、データが有効な時評価したいもの、そしてニックがIRC上で見つからない場合に評価したいもの。第3引数が省略されていると、sircはデフォルトメッセージである"*?* somenickname not found on IRC"を出力します。

sircの初期のバージョンと異なり、サーバから返答を得る前に短時間で複数のユーザホストリクエストを行うことが可能です。

例: 誰かの国コードを出力する機能

 # country code (国コード)
 
 sub printcountry {		# ホストの国コード出力
 
   if ($host =˜ /\.([^.]+)$/) {  # ホストの最終部分と一致
     local($c)=($1); 		# ローカル var $cにそれを出力
     $c="USA" if $c =˜ /^edu$/i;	# それが.edu ならば USA 
     $c="USA (probably)" if $c =˜ /^com$/i || $c =˜ /^org$/i || $c =˜ /^net$/i;
 				# .org, .com または .net ならば 
 				# おそらく USA 圏
     if ($c =˜ /^\d+$/) {	# 数値ならば
       &tell("*** out of luck, $who has an IP address :p");
 				# IPであると警告
     } else {			# その他の場合
       &tell("*** $who is in $c");
 				# 結果を報告
     }
   }
 }
 
 sub cmd_country {		# これがコマンドです
 
   &getarg;			# $newargに引数を得る
   if ($newarg) {		# そこにあると
     &userhost($newarg, "&printcountry;");
 				# &printcountry を用いてユーザホストの要請
 				# 取得のアクションとして
   } else {			# その他の場合
     &tell("*** Whose?");	# 警告
   }
 }
 
 &addcmd("country");		# コマンドをインストール