危うくハマるところだった。
つ~か、実際はちょっとハマったんだけどね(^^;
Windows 上で Perl(ActivePerl)による FTP 通信を行いたかったので、chaichanPaPaさんの「燈明日記」というブログのサンプルソースを拝借して、コマンドプロンプト画面で、
C:\Users\shimomo>perl
#!/usr/bin/perl -w
use strict;
use Net::FTP;
$url = "192.168.XXX.XXX";
$user = "shimomo";
$pass = "hogehoge";
$dir = "/tmp";
$ftp = Net::FTP->new($url) or die "接続失敗!$@\n";
$ftp->login($user, $pass) or die "ログイン失敗!\n";
$ftp->cwd($dir) or die "ディレクトリの変更失敗!\n";
print join("\n",$ftp->dir());
と、ここまで入力して、入力終了だよ!の意味で Ctrl+D してみたけど何も起こらないので、Ctrl+C した。
そしたら、
Terminating on signal SIGINT(2)
なんて言われてスクリプトが実行されないの。
いや、ま、もちろん Ctrl+C したんで SIGINT(2) なのはそうなんだけど、え?
俺が Ctrl+C したのは「ソースの入力の終了」の意味であって、ソース入力が終了したんだから、今度はスクリプトが実行されるんじゃねえの?
試しに、
C:\Users\shimomo>perl
print "Hello, World.\n";
と入力して、ここで Ctrl+C したら、ちゃんと、
Hello, World.
って表示される。signal SIGINT(2) で中断なんて出んでぇ?
もしかして、やっぱソースに問題あるのかね?とか一瞬そっちも疑ったが、上記ソースをファイル(test.pl)に書き出して実行すると、当然のことながらちゃんと実行された。
C:\Users\shimomo>perl test.pl
total 20
drwxrwxrwt 2 root wheel 512 Dec 31 14:49 .ICE-unix
drwxrwxrwt 2 root wheel 512 Dec 31 14:49 .X11-unix
drwxrwxrwt 2 root wheel 512 Dec 31 14:49 .XIM-unix
drwxrwxrwt 2 root wheel 512 Dec 31 14:49 .font-unix
<以下略>
ふーん。ようわからん。
ま、取りあえず、ファイルに出力して実行すれば大丈夫ということがわかったので、それで良いか。(良いのか?技術者として(^^;;;だって、もう、納期がキツキツなんだもの)