webページの例題を参考にMacOSXでPerlのプログラムを書いて動かしてみたのですが、改行のところがうまく動いていないようなのです。(http://d.hatena.ne.jp/azaburecipes/20081001/1222850923)自分でも調べてみたのですが、どうしたらいいのか解決法がみつからないでします。(http://d.hatena.ne.jp/azaburecipes/20081001/1222851660)何かをダウンロードしたり、何か操作する必要があるのかもしれませんが、よくわからないでいます。

TextEditで書いて、Terminalから操作しています。
ちなみにOSのヴァージョンはMac OS X Version 10.3.9です。
MacOSXでプログラムを書いたりしていて詳しい方がいらっしゃたら、アドヴァイスをいただけると助かります。お願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/10/03 22:28:24
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:hornistyf No.5

回答回数59ベストアンサー獲得回数6

ポイント100pt

コメント欄が空いていないのでこちらに。


Texteditで改行コードを変更する方法は見当たりませんでした。無理なのかも知れません。

他のエディタを使ってみてはどうでしょうか?

少なくともmiなら変更が出来るはずです。


念のためですが、Texteditは標準テキストで使っていますよね?リッチテキストではないですよね?

他のプログラムが動いているんで大丈夫かとは思いますが。


あと解決につながるかは分かりませんが、Optionキーを押しながら¥をタイプするとバックスラッシュになります。ひょっとしたらこれで動くようになるかも。

id:azaburecipes

Optionキーを押しながら¥をタイプするという方法で、半角の\を入力する方法でうまくいきました。半角の\を直接入力する方法を知らなかったので、大変参考になりました。ありがとうございます。(http://d.hatena.ne.jp/azaburecipes/20081003/1223039440)

2008/10/03 22:25:17

その他の回答4件)

id:aki1960 No.1

回答回数256ベストアンサー獲得回数8

ポイント60pt

文字列の連結には「,」カンマではなく、「.」を使います。

#!/usr/bin/perl

$name="KENT";

print"my name is $name"."\n";

print'my name is $name'."\n";

id:azaburecipes

改行はうまくいかなかったのですが、文字の表示はうまくいきました。コンマの代わりにピリオドでも動くのですね。不思議です。アドヴァイスをありがとうございます。

(http://d.hatena.ne.jp/azaburecipes/20081003/1223013899)

2008/10/03 15:27:36
id:b-wind No.2

回答回数3344ベストアンサー獲得回数440

ポイント60pt

手元に環境がないから試してないけど、下のどっちかでいけるんじゃないかと。

#!/usr/bin/perl
$name="KENT";
print "my name is $name","\r";
print 'my name is $name',"\r";
#!/usr/bin/perl
$name="KENT";
print "my name is $name","\r\n";
print 'my name is $name',"\r\n";

文字コード/改行コード について[Apache/CGI/Perl]

改行コードは \n だけでOS標準が出力されるはずなんだけどね。

id:azaburecipes

試してみたのですが、改行されなかったです。確認なのですが、半角の\を打つときは、半角で¥のキーを打つのでいいのですよね。それとも文字コードがおかしいのでしょうか。アドヴァイスをありがとうございます。

http://d.hatena.ne.jp/azaburecipes/20081003/1223014921

2008/10/03 15:46:59
id:hornistyf No.3

回答回数59ベストアンサー獲得回数6

ポイント60pt

似たような症状を相談されたことがあります。

その際はテキストエディタ側の改行コードをCR(Mac)からLF(Unix)に変えると動きました。

http://d.hatena.ne.jp/hornistyf/20080421/1211981662

id:azaburecipes

アドヴァイスありがとうございます。テキストエディタの改行コードを確認したり、改行コードを変えるにはどのような操作をしたらいいのでしょうか。説明をいただけると大変助かります。

2008/10/03 15:59:42
id:thrillseeker No.4

回答回数328ベストアンサー獲得回数37

ポイント60pt

OS X 10.5.5 ですが、最初のコードで問題無く動きます。

#!/usr/bin/perl
$name="KENT";
print"my name is $name", "\n";
print'my name is $name', "\n";
$ ./test2.pl
my name is KENT
my name is $name
$ 

そちらの出力結果を見ると、"\n" の \ がちゃんと認識されていない

ように見えますね。全角の¥になっていたりしませんか?

id:azaburecipes

OSのヴァージョンも、もしかすると改行に関係があるのでしょうか。OSのヴァージョンを上げるという方法もあるのかもしれませんが、もし解決法をご存知の方がいらっしゃったら教えていただけると助かります。

それから、プログラムを書くときは、半角の¥で書くようにしています。確認なのですが、プログやこの質問のページで半角の\に見える記号を入力したいときは、半角の¥のキーを入力するのでいいのですよね。アドヴァイスをありがとうございます。

2008/10/03 16:11:24
id:hornistyf No.5

回答回数59ベストアンサー獲得回数6ここでベストアンサー

ポイント100pt

コメント欄が空いていないのでこちらに。


Texteditで改行コードを変更する方法は見当たりませんでした。無理なのかも知れません。

他のエディタを使ってみてはどうでしょうか?

少なくともmiなら変更が出来るはずです。


念のためですが、Texteditは標準テキストで使っていますよね?リッチテキストではないですよね?

他のプログラムが動いているんで大丈夫かとは思いますが。


あと解決につながるかは分かりませんが、Optionキーを押しながら¥をタイプするとバックスラッシュになります。ひょっとしたらこれで動くようになるかも。

id:azaburecipes

Optionキーを押しながら¥をタイプするという方法で、半角の\を入力する方法でうまくいきました。半角の\を直接入力する方法を知らなかったので、大変参考になりました。ありがとうございます。(http://d.hatena.ne.jp/azaburecipes/20081003/1223039440)

2008/10/03 22:25:17
  • id:b-wind
    >コンマの代わりにピリオドでも動くのですね。
    ちょっと違う。
    ピリオドは単純に文字列の連結の演算子。
    だから文字列が連結された後 print に渡されて文字列が出力される。

    コンマの場合は引数としてリストを指定したことになる。
    print 自体は複数の引数を受け取れるようになっており、そのばあい
    引数に指定された文字列を順番に出力する。

    結果はたまたま一緒になるけど文字列の連結が print に渡される前か後かという点で
    全く別の処理。
    もちろん print 以外の処理では同じ結果が得られるとは限らない。
  • id:azaburecipes
    ピリオドは文字列の連結ということで覚えておこうと思います。ご指摘ありがとうございます。参考になります。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません