リャマ本で学び始めたばかりなのですが、プログラムの出力が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スクリプトでダブルクォーテ...
-
Perl<->Oracle間での文字化けに...
-
perlでの出力先設定
-
教えて!perlから.exeファイル...
-
重複するデータを抽出できる秀...
-
テキストファイルから日本語部...
-
perlで半角カナを検索するには...
-
エクセルVBAで素数だけを出力す...
-
sprintfについて
-
batファイルでrenameができませ...
-
バッチファイルの作り方(CSV→...
-
ディレクトリの判別
-
巨大ファイルの行をを逆順に並...
-
csvファイルの横方向への改行に...
-
VBAでCSVファイルの特定行を書...
-
C言語で特定の行を抽出する方法...
-
VBAで巨大なファイルの途中から...
-
動かなくなったのでJavaソース...
-
Perlの変数に文字数制限(容量...
-
close()で例外が投げられる理由
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
重複するデータを抽出できる秀...
-
Perlでファイルの末尾から指定...
-
sprintfについて
-
[Perl]ファイル出力のエンコー...
-
エクセルVBAで素数だけを出力す...
-
文字コードの変換(Shift-JISか...
-
テキストファイルから日本語部...
-
sprintfで10進数を桁数指定で16...
-
ファイル出力の改行コードをLFに
-
Perlからsyslog経由でログを出...
-
PerlからのCSV出力
-
perlでcsvの出力について
-
教えて!perlから.exeファイル...
-
バッチファイルで、記号を含む...
-
perl CGIでのhttpヘッダー出力...
-
print文で&(半角)文字のエラー...
-
Perlでエラーログに日時をつける
-
紙にもホームページにも同じレ...
おすすめ情報