プロが教えるわが家の防犯対策術!

リャマ本で学び始めたばかりなのですが、プログラムの出力がTerminalに表示されずに困っています。

以前学校の授業でUNIX機を使ってhello worldをやったときはchmodして「perl ソース名」とすれば標準出力にhello worldと出た気がするのですが、MAC OSXでchmodして実行してもエラーも出ずに、改行されて通常の入力待ちカーソルが点滅するだけです。
試しにリダイレクトもしてみましたが、新しいファイルができただけでした。
ソースはhello world出すだけのアレなので間違いようがないと思います。

「osx perl」などのキーワードで教えて!gooやgoogleで検索してみましたが、プログラム講座のようなものはたくさんあるのですが、初歩的な環境構築の手ほどきが見つからず、とりあえず
http://homepage.mac.com/dnagase/macosx/perlcgi.h …
ここを見て「これはApacheで実行したいときだからなんか違うなー」と思いつつも藁にもすがる思いで設定してみたりもしましたが変化はありませんでした。

おそらく鼻から火が出るくらいの恥ずかしい質問だとは思うのですが、こいつの解決法探しに一日費やしてしまったので恥も承知で聞いてみることにしました。よろしくおねがいします。

A 回答 (2件)

手元にあるMacでは質問にある通りにやれば表示されますよ (「perl ソースファイル」と打ち込むならchmodしなくても実行できます)。

特にディベロッパーツールとかインストールしていない、あまり使い込んでいない標準的な状態のMacです。

ソースファイルの文字コードとか改行コードとか確認する (UTF-8でLFのプレインテキストになっているかどうか) と解決するかも?ターミナルのウィンドウ設定のディスプレイで文字セットエンコーディングがUTF-8になっているかとかも一応確認してみたらどうか?
# Mac OS Xの標準状態でPerlは実行できるので、最終手段ですけどMac OS Xをインストールし直せば、確実に解決すると思います
    • good
    • 0
この回答へのお礼

お礼が遅くなって大変申し訳ありません。

miを使っているのですが、デフォルトでShift JIS+CRになっていました。
LFに直したらうまくいきました。ありがとうございます。

ちなみにShift JIS+LFだと?nで改行されるのですが、UTF-8+LFだと?nがそのまま出力されて改行されないことも分かりました。
これは自分で調べてみます。文字コードと改行コードはプログラムを書くにあたって気をつけないといけないようですね。いきなりいい経験ができました。

お礼日時:2006/10/04 14:35

perl -le "print qq/Hello World!/"


を実行できれば perl には問題ないでしょう。

あと、出力の最後に改行がないと、スクリプトからの出力直後のプロンプト文によって出力した文字が消されてしまいますが、どうでしょう(シェルによって違うかも)。
    • good
    • 0
この回答へのお礼

お礼が遅くなって大変申し訳ありません。

前の回答者の方の指摘で解決いたしました。
改行はちゃんといれていたのですが、今度は新たに文字コードによって改行の振る舞いが違うことが分かりました。
ゆっくり勉強していきます。
ありがとうございました。

お礼日時:2006/10/04 14:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!