インターネットサービス情報を走査する
getservent
はシステムのインターネットサービス情報(Linux では主に /etc/services
に登録されている情報)にアクセスし、インターネットサービス情報を返します。引数はありません。
# 0 1 2 3
my ( $name, $aliases, $port, $proto ) = getservent;
No. | 変数 | 意味 | 実例 |
---|---|---|---|
0 | $name |
サービス名 | pop3 |
1 | $aliases |
エイリアス (別名) | pop-3 |
2 | $port |
ポート番号 | 110 |
3 | $proto |
下位プロトコル名 | tcp |
getservent
はイテレーターとして機能しますので、一般的には while
ループで使われます。
以下のサンプルコードは、サービス名を一覧出力します。
while ( my @info = getservent ) {
print $info[0], "\n";
}
getservent
はスカラーコンテキストであれば、最初の項目であるサービス名のみを返します。
そのため、前述のサンプルコードは次のように書き換えても同じです。
while ( my $name = getservent ) {
print $name, "\n";
}
なお、getservent
は Windows では機能しませんので注意してください。