トップページ⇒tech
1001コメント305KB

Perlについての質問箱 30箱目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/03/14(水) 22:54:12
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc8.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

http://www.perl.org/get.html
● 2006/12/21現在の最新版: 5.8.8
● 2006/12/21現在の開発版: 5.9.3

前スレ
Perlについての質問箱 29箱目
http://pc11.2ch.net/test/read.cgi/tech/1166708139/

リンク集は>>2-3
過去スレは>>4
0786デフォルトの名無しさん2007/05/25(金) 01:59:16
<>をファイル読み込みとして認識させるには、
括弧の中を $fh のような形をしたスカラ変数にしないとダメだから、
一時的に変数を作るしかないね。

my @data = sub{$_=shift;<$_>}->($this->{fh_lex}); とかw
0787デフォルトの名無しさん2007/05/25(金) 02:08:24
ヒント:<()>
0788デフォルトの名無しさん2007/05/25(金) 02:09:52
<()> はファイルグロブ。
0789デフォルトの名無しさん2007/05/25(金) 02:22:28
<${this->{fh_lex}}>
とかダメ? 試してないけど。
0790デフォルトの名無しさん2007/05/25(金) 02:31:13
>>789
ダメだよ。やってみたw

<>を放棄した技だけどw
my @data = readline $$this{fh_lex} ;
0791デフォルトの名無しさん2007/05/25(金) 02:37:14
普通に<>の内部関数のreadline使って、
my @data = readline $this->{fh_lex};
でよかろ。
0792デフォルトの名無しさん2007/05/25(金) 04:08:38
>>785
別に無理に1行に書かなくても地味に$fhに代入した方がよっぽど明示的で
よいコードに見える。
どうしてもっていうんなら、$thisがオブジェクトならオーバーロードを使ってみては?
■ このスレッドは過去ログ倉庫に格納されています