dポイントプレゼントキャンペーン実施中!

メモ帳で以下のようなプログラムを書きました。(file_1.plで保存しました)

#!/usr/bin/perl

$file="data.csv";
$cityfile="name.txt";
$outfile="data_out.csv";


open (IN, $file) or die "$!";
open (FILE, $file) or die "$!";
open (OUT, ">$outfile") or die "$!";
@city = <FILE>;





これをCygwinコマンド上で、

perl file_1.pl

と入力し、Enterを押すと「No such file or directory at file_1.pl line 9.」と表示されます。
line9はopen (FILE, $file) or die "$!";という文です。
どこが間違えで、どのように修正すればよいのでしょうか。

よろしくお願いします。

A 回答 (6件)

> open (FILE, $file) or die "$!";


になっていて、ここで「No such file or directory」だから、みなさん「$fileで示すファイル data.csvがあるのか、場所は間違えていないか」と言っているのです。

> open (FILE, $cityfile) or die "$!";

が正解なら、確認するべきは「$cityfileで示すファイル name.txt があるのか、場所は間違えていないか」です。

> open (IN, $file) or die "$!";
で、data.csvはopenできているので、関係ありません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

name.txt を作成し、コマンドを実行するファイル内に置いたら、実行出来ました。

お礼日時:2012/10/10 17:00

んでこのファイルは全部あるのかぃ?

    • good
    • 0
この回答へのお礼

返信が遅れましたが、返答ありがとうございます。

name.txt を作成し、コマンドを実行するファイル内に置いたら、実行出来ました。

お礼日時:2012/10/10 17:00

ファイルの内容ではなく、そのファイル名が存在するかどうかです。



>ホームディレクトリーの中に入れています・・・。

ホームディレクトリーではダメではないですか?
ルートディレクトリーなら分かりますが・・・
「No such file or directory 」 と言っているのだから、ファイルかディレクトリがないんですよね?
なので、アナタは、「data.csv」がどこにあるか知っていても、file_1.pl から見て見えないところにあるのじゃないですか?
data.csv と file_1.pl はそれぞれどのディレクトリにあるのですか?
そして、アナタが file_1.pl を実行する時、ルートディレクトリはどこになっていますか?
どこのディレクトリから実行しようとしているのですか?
その3つが合っていないのだと思います。

この回答への補足

実行環境ですが、

windows7で、
ライブラリー→ドキュメント→ドキュメント内のフォルダにdata.csvとfile_1.plを置いています。

補足日時:2012/10/05 18:15
    • good
    • 0

や, 一瞬そう思った (しそう書こうとした) んだけど, それならその前の行でエラーになるはずなんです>#2. ということで #1 に 2行目が追加されたのでした... と思ったけど, このスクリプトではエラーにならない.



その「file_1.pl」とかいうファイル, 本当にこの通りですか? もしこの通りだとしたら, $cityfile って変数の存在意義は?

この回答への補足

返答ありがとうございます。

質問で記載したプログラムが間違っていました。

#!/usr/bin/perl

$file="data.csv";
$cityfile="name.txt";
$outfile="data_out.csv";


open (IN, $file) or die "$!";
open (FILE, $cityfile) or die "$!";
open (OUT, ">$outfile") or die "$!";
@city = <FILE>;





line9はopen (FILE, $cityfile) or die "$!";という文です。これでも、「No such file or directory at file_1.pl line 9.」と表示されます。

補足日時:2012/10/05 13:59
    • good
    • 0

そのままの意味だと思います。


「data.csv」が無いんじゃないですか?

この回答への補足

回答ありがとうございます。

CSVファイルの中身は、

1, 人名1, 年齢1, 出身地1
2, 人名2, 年齢2, 出身地2
3, 人名3, 年齢3, 出身地3
4, 人名4, 年齢4, 出身地4
・  ・    ・    ・
・  ・    ・    ・
・  ・    ・    ・

となっています。ホームディレクトリーの中に入れています・・・。

補足日時:2012/10/05 13:27
    • good
    • 0

・そのファイルはあるの?


・そのファイルでいいの?

この回答への補足

回答ありがとうございます。

CSVファイルの中身は、

1, 人名1, 年齢1, 出身地1
2, 人名2, 年齢2, 出身地2
3, 人名3, 年齢3, 出身地3
4, 人名4, 年齢4, 出身地4
・  ・    ・    ・
・  ・    ・    ・
・  ・    ・    ・

となっています。

補足日時:2012/10/05 13:25
    • good
    • 0

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