宿題: http://www.cs.rit.edu/~waw/networks/prob1.082.html
わかりました、なぜこの質問が私のデータ通信とネットワークのクラスで聞かれたのかまだ混乱していますが、宿題からの質問は次のとおりです。
電子メール メッセージのヘッダーを読み取り、で始まる行以外のすべての行を削除するコンピューター プログラムを作成します。
From:、To:、Subject:、および Cc:。
コンテスト -- これを行う最短のプログラムを誰が書けるか。
そこで、少し考えた後、次の Perl コードはこれを実行できるほど小さいものであると判断しました。
#!/usr/bin/perl
while (<>) { print "$_" if ($_ =~ m/^(To:|From:|Subject:|Cc:)/); }
これは、質問で指定されているように、From:、To:、Subject:、および Cc: で始まる行のみが出力されるフィルターのように機能するだけです。具体的な詳細がないため、上記のコードは少なくとも質問に正しく答えるために機能すると思います。
さて、このためにどれだけ小さなプログラムを書けるだろうか? 誰もコードを投稿したくないのは理解できますが、それは私が課題に使用すると思われるためです。しかし、可能な限り短いプログラムを作成するのに役立つ提案やテクニックを多かれ少なかれ探しています。
また、最短で彼が実際のコード長を指していると確信しています。彼はスクリプト言語が進むべき道であると述べていたので、インタープリターに伴うオーバーヘッドのようなものを彼が考えているとは思えません。これはまた、彼がどの言語が使用されているかを気にしないことを意味します。
ご覧いただきありがとうございます。
編集:提案をありがとう!ここでかなり長い間質問を読んでいましたが、将来的にはもっと貢献できることを願っています。また、Perl コードを 55 バイトに削減した提案もいくつかあります。複数行のヘッダーのようなものを扱う必要はないと思います。
おまけ: パケット交換やクライアント/サーバー アーキテクチャなどについて議論しているクラスで、なぜこれが質問されたのか、正当な理由を誰が特定できますか?
EDIT2:記録のために、私の教授は、誰かが55バイトのようなものでこれを行ったと言いました。それが可能であると私が考える唯一の方法は、彼が上記のような単純な実装のみを求めていた場合です。