海外旅行から帰ってきたら、まず何を食べる?

下のように何もオプションをつけないでPerlを起動します。すると、文字が打ち込めるようになるので打ち込んでみました。
さて、この状態からどうやってスクリプトを実行して元のプロンプトに戻ればいいのでしょう?
とりあえず、Ctrl+Z を押した後 ENTER を押すと終了になるようです。シェル上でのPerlのスクリプト編集状態から抜ける方法がわからないです。
よろしくお願いします。

C:\>perl
print "aaaaaaaaaa\n";
^Z
aaaaaaaaaa

A 回答 (4件)

Perlは標準入力を待ち受けてるだけなので、お使いのシェルの流儀に則って、リダイレクトやパイプラインを記述すれば良いかと。


例えばcmd.exeだと、こんな感じ:

echo die "OK" |perl

詳しくは、お使いのシェルのmanやらhelpをご覧下さい。

この回答への補足

すみません、質問者です。

下のお礼に複雑なことを書いてしまいましたが、
bash では、

$ perl <<END
> print "aaaaaaaaa\n";
> END

でできました。

補足日時:2008/03/17 01:41
    • good
    • 0
この回答へのお礼

なるほど、標準入力でしたか。
大変参考になりました。
ありがとうございます。

スクリプトをファイルに書かないで
さっと実行する方法を考えていましたが、

この方法は記述が複雑になるため、
ファイルに書いたほうが簡潔にすみそうです。

やってみました。

--- dos ---

C:\>echo ^
More? foreach my $file (glob('.\*')) {^
More? print $file. "\n";^
More? } | perl

--- bash ---

$ cat <<END >&1 | perl
> foreach my \$file (glob('./*')) {
> print \$file. "\n";
> }

お礼日時:2008/03/17 01:24

CTRL+D でも同じように編集を終えられると思う。


素直に、__END__ を打ち込むのが、流儀なのかも。
    • good
    • 0
この回答へのお礼

__END__ で終わりますね。知りませんでした。ありがとうございます。

お礼日時:2008/03/17 01:28

 自分も perl を、勉強し始めたばかりです。


 
 スクリプトを実行するには、 perl -e など、
 オプションが必要です。
 詳しくはググってください。
( perl コマンドライン など。)
 

 まとはずれなら、ごめんなさい。

 

参考URL:http://www.geocities.co.jp/SiliconValley-Sunnyva …
    • good
    • 0
この回答へのお礼

ありがとうございます。
コマンドラインで
一行で書く方法参考になりました。

お礼日時:2008/03/17 02:00

コマンドプロンプトでは、MS=DOSのとき以来ファイルの終了は、1Ahでした。



コンソールで、1Ahを入力するのに、Ctrl+Zを使います。それで

>>> Ctrl+Z を押した後 ENTER を押すと終了になるようです。

これで、シェル上でのPerlのスクリプト編集状態から抜けることが出来ます。

話は変わりますが、copy コマンドで
   コンソール(con)からの入力を
   ファイル(tt.txt)に落とす
場合は次のようになります。
----------------------------------------------------------------------------------
C:\>copy con tt.txt
aaa
bbb
^Z
1 個のファイルをコピーしました。

C:\>type tt.txt
aaa
bbb

C:\>
    • good
    • 0
この回答へのお礼

大変参考になりました。詳しく教えていただきありがとうございました。

お礼日時:2008/03/17 01:54

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