質問

ケルベロス構成ファイルを解析(および書き込み)するPerlモジュール(つまり、 /etc/krb5.conf )に出くわした人はいますか? Config :: General Config :: Auto など。ただし、次のようなネスト構造を処理できるものはないようです。 :

pam = {
  debug = false
  ticket_lifetime = 36000
  renew_lifetime = 36000
  forwardable = true
  krb4_convert = false
}

INI スタイルのセクションも処理する必要があります。例:

[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM

[appdefaults]
 pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
 }

形式の詳細については、 krb5 confドキュメントをご覧ください。

私は自分のパーサーを書いている時点ですが、誰かが既に素敵でエレガントなモジュールをすでに書いていれば、そうする必要はありません。

役に立ちましたか?

解決

パーサーの作成に約10分かかる場合、おそらくモジュールにするのはそれほど面白くないでしょう。おそらく仕事をするコードの一部です(免責事項:Kerberosの設定形式については何も知りません。コードはここに投稿した内容に基づいています)。

#!/usr/bin/perl -w
use strict;

my %conf;
my $section;

while (<>) {
    if (/^\s*(\S*)\s*=\s*\{\s*$/) {
        $section = $1;
        $conf{$section} = {};
    } elsif (/^\s*(\S*)\s*=\s*(\S*)\s*$/) {
        my $key = $1;
        my $value = $2;
        if ($section) {
            $conf{$section}{$key}=$value;
        }
    }
}

foreach (keys %conf) {
    $section = 

パーサーの作成に約10分かかる場合、おそらくモジュールにするのはそれほど面白くないでしょう。おそらく仕事をするコードの一部です(免責事項:Kerberosの設定形式については何も知りません。コードはここに投稿した内容に基づいています)。

<*>

編集:ini形式の解析も難しくありません。 whileループにさらにifを追加し、データ構造%confを少し複雑にするだけです。ハッシュのハッシュの代わりに、ハッシュのハッシュのハッシュが必要になります。最初のレベルのキーは[...]のキーワードで、2番目のレベルはここで書いたものです(for&quot; pam = {&quot; )。

; foreach (keys %{$conf{$section}}) { print "$section:

パーサーの作成に約10分かかる場合、おそらくモジュールにするのはそれほど面白くないでしょう。おそらく仕事をするコードの一部です(免責事項:Kerberosの設定形式については何も知りません。コードはここに投稿した内容に基づいています)。

<*>

編集:ini形式の解析も難しくありません。 whileループにさらにifを追加し、データ構造%confを少し複雑にするだけです。ハッシュのハッシュの代わりに、ハッシュのハッシュのハッシュが必要になります。最初のレベルのキーは[...]のキーワードで、2番目のレベルはここで書いたものです(for&quot; pam = {&quot; )。

:$conf{$section}{

パーサーの作成に約10分かかる場合、おそらくモジュールにするのはそれほど面白くないでしょう。おそらく仕事をするコードの一部です(免責事項:Kerberosの設定形式については何も知りません。コードはここに投稿した内容に基づいています)。

<*>

編集:ini形式の解析も難しくありません。 whileループにさらにifを追加し、データ構造%confを少し複雑にするだけです。ハッシュのハッシュの代わりに、ハッシュのハッシュのハッシュが必要になります。最初のレベルのキーは[...]のキーワードで、2番目のレベルはここで書いたものです(for&quot; pam = {&quot; )。

}\n"; } }

編集:ini形式の解析も難しくありません。 whileループにさらにifを追加し、データ構造%confを少し複雑にするだけです。ハッシュのハッシュの代わりに、ハッシュのハッシュのハッシュが必要になります。最初のレベルのキーは[...]のキーワードで、2番目のレベルはここで書いたものです(for&quot; pam = {&quot; )。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top