WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:<> と <CMD> の違い

0:[投稿] ks [2010/04/24 09:58 ] [環境:winXP,IE6,FireFOX apache]

perlを久々にやっててわからない事がでてきましたので、
皆様ご教授の程を。。。

例文としてあげると、

$cmd = "ping 127.0.0.1";
open(CMD, "$cmd |");

のような場合に、「print CMD」と「print <CMD>」では、
出力結果が違っていました。「<>」の場合はpingの実行結果が
表示されず、「<CMD>」の場合は実行結果が表示されました。
何故だかわからなくて、この掲示板で質問させて頂きました。

何卒ご教授の程、宜しくお願い致します。


1:[回答] chaipa [2010/04/25 00:12 ]

「<>」の場合は、標準入力からですよね。たしか。
今回は、標準入力とは関係ないからではないでしょうか?

つまり、「<CMD>」は、"$cmd |"とちゃんと結びついているので、上手く行くのでしょう。たぶん。


2:[質問] ks [2010/04/25 01:42 ]

chaipaさん、ご回答ありがとうございました。
ファイルハンドルにて出力させる時は、「<>」を付け足さなければ
いけないって事みたいですね。

それと質問文に誤りがあったので訂正します。。。

誤:「<>」の場合はpingの実行結果が表示されず、「<CMD>」の場合は実行結果が表示されました。

正:「CMD」の場合はpingの実行結果が表示されず、「<CMD>」の場合は実行結果が表示されました。

上記訂正文で回答内容が違ってくるでしょうか?
ご教授の程お願い致します。


3:[回答] chaipa [2010/04/25 08:53 ]

あ、そういうこと!

printは、ファイルハンドルを省略すると標準出力にプリントします。

なので、「print <CMD>」は、ファイルハンドルが省略されているので、ping出力を標準出力にプリントします。

一方、「print CMD」は、ファイルハンドルを指定いるけど、その後、何も指定がありません。


4:[完了] ks [2010/04/25 11:30 ]

chaipaさん、度々のご回答ありがとうございました。

出力先がどこになっているかが焦点だったのですね。

もう一度perlの勉強をし直してきます^^;

回答(必須): 状態:

お名前(必須):

URL:




[戻る]