ActivePerl をちょっとテストしようとしてハマるところだった・・・[お仕事]
(2011-04-16 11:20:36) by shinoda


危うくハマるところだった。
つ〜か、実際はちょっとハマったんだけどね(^^;

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
<以下略>

ふーん。ようわからん。

ま、取りあえず、ファイルに出力して実行すれば大丈夫ということがわかったので、それで良いか。(良いのか?技術者として(^^;;;だって、もう、納期がキツキツなんだもの)


コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8