人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlでのファイルハンドルの取り扱いについて質問です。サブ関数でオープンしたファイルのハンドルを返したいです。型グロブを使えばいいのかと{ local *FH ; open FH,$file ; *FH ;}などとしてみましたが、毎回同じ値が返ってきます。C言語などではファイルハンドルの値はユニークだと思うのですが、どうなっているのでしょうか?さっぱりわかりません。どうしたらいいか教えて下さい。

●質問者: osietekun
●カテゴリ:コンピュータ
✍キーワード:open Perl オープン ハンドル ファイル
○ 状態 :終了
└ 回答数 : 8/8件

▽最新の回答へ

1 ● masi
●20ポイント

http://www.rfs.jp/sitebuilder/perl/02/08.html#

ファイルハンドルを変数に格納するには、

$fh = *FILEHANDLE;

サブルーチンに渡すには、

&function(*FILEHANDLE);

◎質問者からの返答

この時別々のファイルを開いているのに$fhに入ってる値が一緒なんで困ってるんです。

自分がなにか勘違いしているのでしょうか?


2 ● uwi
●20ポイント

http://www.rfs.co.jp/sitebuilder/perl/

このPerl&CGI講座の

http://www.rfs.co.jp/sitebuilder/perl/02/08.html#TRY

!%20ファイルハンドルを変数に格納する

ここに書いてある通りだと思います。

◎質問者からの返答

先ほどの質問と一緒です。


3 ● たーちゃん
●10ポイント

http://www.perl.com/

Perl.com Home Page

同時にファイルを開いているのでなければ、同じあたいになることもあると思います。ファイルハンドルはファイルを直接表すURLなどの表現と違って、開いているファイルの内部的な表現です。

内容を読み込んでみて、すべて同じ値になるのなら、openの指定の段階で間違っているのではないでしょうか?

◎質問者からの返答

>ファイルの内部的な表現です。

それはよくわかってます。

間違ってるようには思えないんですけれど。。


4 ● GEAR
●20ポイント

http://search.cpan.org/~jhi/perl-5.8.1/lib/FileHandle.pm

FileHandle - search.cpan.org

FileHandleモジュール使ってみては。

my $fh = new Filehandle;

$fh->open(”>>ファイル名”);

などなど

OOPの知識がほんの少し必要になりますが。

FileHandleモジュールは最近のPerlなら標準で付属しています。

◎質問者からの返答

ん〜、やはりこれを使うことになるんですかねー。


5 ● masi
●0ポイント

http://www.bb.wakwak.com/~r360/cginote/bunpo/chapter07.html

@fh=<FH>;

<>をつけてもだめですか?

◎質問者からの返答

それやると、読み込まれたものがかえってきますよね?

というか逆に自分が教えてる気がするのは気のせいでしょうか?


1-5件表示/8件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ