リャマ本で学び始めたばかりなのですが、プログラムの出力が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で実行したいときだからなんか違うなー」と思いつつも藁にもすがる思いで設定してみたりもしましたが変化はありませんでした。
おそらく鼻から火が出るくらいの恥ずかしい質問だとは思うのですが、こいつの解決法探しに一日費やしてしまったので恥も承知で聞いてみることにしました。よろしくおねがいします。
No.1ベストアンサー
- 回答日時:
手元にあるMacでは質問にある通りにやれば表示されますよ (「perl ソースファイル」と打ち込むならchmodしなくても実行できます)。
特にディベロッパーツールとかインストールしていない、あまり使い込んでいない標準的な状態のMacです。ソースファイルの文字コードとか改行コードとか確認する (UTF-8でLFのプレインテキストになっているかどうか) と解決するかも?ターミナルのウィンドウ設定のディスプレイで文字セットエンコーディングがUTF-8になっているかとかも一応確認してみたらどうか?
# Mac OS Xの標準状態でPerlは実行できるので、最終手段ですけどMac OS Xをインストールし直せば、確実に解決すると思います
お礼が遅くなって大変申し訳ありません。
miを使っているのですが、デフォルトでShift JIS+CRになっていました。
LFに直したらうまくいきました。ありがとうございます。
ちなみにShift JIS+LFだと?nで改行されるのですが、UTF-8+LFだと?nがそのまま出力されて改行されないことも分かりました。
これは自分で調べてみます。文字コードと改行コードはプログラムを書くにあたって気をつけないといけないようですね。いきなりいい経験ができました。
No.2
- 回答日時:
perl -le "print qq/Hello World!/"
を実行できれば perl には問題ないでしょう。
あと、出力の最後に改行がないと、スクリプトからの出力直後のプロンプト文によって出力した文字が消されてしまいますが、どうでしょう(シェルによって違うかも)。
お礼が遅くなって大変申し訳ありません。
前の回答者の方の指摘で解決いたしました。
改行はちゃんといれていたのですが、今度は新たに文字コードによって改行の振る舞いが違うことが分かりました。
ゆっくり勉強していきます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby プログラミング 3 2023/06/09 14:30
- Mac OS El Capitanがインストールできない… 1 2023/06/16 13:05
- サーバー 接続・ログインはできているのにメールが送信できない 2 2022/06/27 15:03
- Perl Perlで特定文字列から特定文字列までを抜き出したい 4 2022/04/02 14:24
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- Windows 10 Windows Updateの更新ができない場合に初期化 3 2023/01/18 20:00
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- 書類選考・エントリーシート 【急ぎです】指定校推薦の志望理由書の添削お願いしたいです! 商学部で1600字中1595字です 志望 1 2023/08/24 02:54
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- JavaScript ifreamをリロードしたい 1 2022/05/03 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
Perlでファイルの末尾から指定...
-
log2の「正確な」計算方法
-
batファイルでrenameができませ...
-
エラー 'dir.h' : No such fi...
-
HTMLのフォームで画像と文...
-
ExcelをCSV書き出す場合のシー...
-
Perlの変数に文字数制限(容量...
-
readdir()で得られるファイル・...
-
ファイル全てを .xlsm に変更し...
-
while(<ハンドラ>) {} で行数を...
-
パスから最後のディレクトリだ...
-
テキストデータから指定した1...
-
一定時間が経過したフォルダの削除
-
htaccessで特定のディレクトリ...
-
ReadLineでの読み出し行を指定する
-
1行がやたら長いテキストをバッ...
-
while文がうまく動かない
-
chdirがうまくできない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
エクセルVBAで素数だけを出力す...
-
教えて!perlから.exeファイル...
-
sprintfについて
-
Perlでファイルの末尾から指定...
-
CGIから外部コマンド実行時の標...
-
重複するデータを抽出できる秀...
-
ファイル出力の改行コードをLFに
-
timeコマンドの結果をテキスト...
-
sprintfで10進数を桁数指定で16...
-
log2の「正確な」計算方法
-
機器のI/OをArduinoでSDに記録...
-
Perl<->Oracle間での文字化けに...
-
Perl中で teeを使っても戻り値...
-
テキストファイルから日本語部...
-
バッチファイルで、記号を含む...
-
htmlから、ファイル、もしくはC...
-
perlでの出力先設定
-
標準エラーと標準出力をファイ...
おすすめ情報