1 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 12:22:12 ] "The duct tape of the Internet" こと、Perlについての質問箱です。 "There's more than one way to do it" ということで、 Perlの奥深さについて皆で語り合い、追求してまいりましょう。 CGIについての質問は板違いです。WEBプログラミング板でどうぞ。 CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。 ( WEBプログラミング板 pc11.2ch.net/php/ ) CGIの質問は答えが Perlと全然関係ない話に帰着する場合が 多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。 このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 www.perl.org/get.html ● 2008/09/21 現在の最新版(安定版): 5.10.0 ● 2008/09/21 現在の開発版: 5.9.5 ▼ 前スレ Perlについての質問箱 37箱目 pc11.2ch.net/test/read.cgi/tech/1218449440/ リンク集は>>2-3 Perl 日本語処理の基礎の基礎 >>4 過去スレは>>5-6 あたり
185 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 09:17:50 ] 今プログラミングPerl久しぶりに開いてみたら・・・ 訳出作業に使用した作業環境 IBM ThinkPad 535(Pen120MHz 40MB HDD2GB) FreeBSD2.2.1+PAO Mule2.3
186 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 09:23:21 ] 元々料理本はラクダの一部じゃん。 だから、説明に欠落がある。
187 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 15:46:11 ] >>137 ソフトウェアってのはハードウエアではないあらゆるものを指すわけで、あなたが飽きてきたっていう 「CGIプログラム」だってソフトウエアです。家電のプリント基板に入っている組み込み系もソフト ウエアですし。だからみんな「ソフトウエアがやりたい」って、何がやりたいの? と訊いてる訳です。 …てなことは説明しなくてもわかって欲しいのですが。 Windows上で動くGUIなプログラムのことなんですかね…。perlでも書けなくもないですね。 でも結局WinAPIをいじるから、そっちの知識がないと書けないですし。VBやVCという言語がある ってことくらいは知っててもいいと思います。なでしこってのもあるよ。 そもそも、プログラムの形態とか言語についてあれこれいう前に、作ったプログラムで何がやりたいか、 を具体的にイメージできないと、モチベーションを維持するのは難しいと思います。私の経験上 そうです。何か作りたいものがあって取り組むのが一番上達が早いです。 私はCGI屋なんで、その立場から言わせてもらうと、CGIだっていつまでも奥が深くて、飽きるなんて ことはないですよ。できることはたくさんあるし、やりたいことも尽きません。
188 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 16:29:55 ] ネタに亀レス(w
189 名前:デフォルトの名無しさん mailto:sage [2008/10/11(土) 17:31:11 ] なんだこの珍問答
190 名前:デフォルトの名無しさん [2008/10/11(土) 17:48:10 ] どうかおめこ干しを
191 名前:デフォルトの名無しさん [2008/10/12(日) 22:15:11 ] >>187 ということはプログラムのほとんど、またはすべてはソフトウェア プログラミングということでしょうか?もしそうなら皆さんごめんなさい。 確かにそれなら自分の質問に答える前につっこまれるのが普通だと思います。 それとCGIですごい大きいものを作ったわけでもないのに飽きたと言ったのは偉そうに 言い過ぎました。すみません。 自分が言っているソフトウェアプログラミングはメモ帳やエクセルなどの デスクトップアプリケーションのことです。 自分がまだプログラムを始めたての頃、作りたかったのがCGIというかチャットや掲示板だったんです。 プログラムを始めた時は頭が今よりも悪く(今もよくないですが)学校が忙しいのもありましたが 意味不明なことをしていて結局CGIに取り掛かるのに1年かかってしまいました。 ただ作ってみたら結構簡単だし同じような処理が多いので楽しいよりめんどくさい の気持ちが強くなってしまい他の作ってみたいなという気持ちが出てきたので 前の質問に至りました。 ただ自分はパソコン歴自体長くなく知らないことも多いので もしかしたらすごい楽しいCGIのプログラミングがあるのかもしれませんね。 検索サイトやデータベースはあまり興味ないですが。 長々とすみません。
192 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 22:25:09 ] アルファがベータをカッパらったらイプシロンした まで読んだ。
193 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 06:14:15 ] >>191 まず周囲の空気を読む事から覚えろw
194 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 08:27:19 ] >191 用語や用法のミスはあまり問題ではない。 まずは相手に伝える努力をしろよ。
195 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 09:33:28 ] >>194 > 用語や用法のミスはあまり問題ではない。 用語や用法の決めつけをあらゆるレベルでやっているのを見て、 みんな真面目に対応するのをやめたのだと思う。
196 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 10:59:33 ] 入門書くらい読め
197 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 12:32:51 ] >>196 結局それに尽きる
198 名前:デフォルトの名無しさん [2008/10/13(月) 15:09:20 ] >>193 >>195 まったくそのとおりです。 >>196 確かに前に読んだ本に書いてあったような気がします。
199 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 18:03:06 ] >>175 いわゆるラクダ本はPerlを基軸言語にしたいというやつ以外、不要。 内容的に古いし、プログラミングの基本が学べるわけでもない。 そんなもんに金と時間使うなら、自分本来の得意分野を伸ばすことに時間を使え。 どうしてもってなら下巻だけ買っとけ。
200 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 20:41:17 ] リャマ本と続リャマ(動物の名前忘れた)は、単純に読み物として楽しめた。
201 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 21:33:58 ] >>200 アルパカな >単純に読み物として楽しめた。 たしかにそうだが正直なところ ああいう欧米系ジョークを交える書き方は 日本人には難しそうだ
202 名前:デフォルトの名無しさん [2008/10/13(月) 22:20:19 ] >>201 確かに。 ------------------------- C++をを設計したストラウストラップの教本 ↓ smalltalkの「メッセージ」を真似して「std::cout << "Hello, world!" 」なんて書けるようにしました。てへ。 ↓ << がCのビット演算子とかぶってるって? しかも厳密な意味では演算子オーバロードですら無いって? 知ったこっちゃないね。重要なのは「メッセージ」だって言ってるだろ! ↓ 最初の10数ページ以降「メッセージ」の概念が無くなってるって? あーいいのいいの。これオブジェクト指向とやらを無理矢理実装した俺様仕様だからさ。気にすんなって。 ------------------------- おいらがC++を見限ったのは、このお笑いのツボが理解できなかったからだとさ。
203 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 22:24:33 ] リャマ本の第5版って翻訳されないのかな?
204 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 04:10:35 ] 最近データーベースの勉強をしてるんだが、 perlのソースコードを一行一行、一行づつ全部 データーベースに格納したら面白いかな? と考えたんだが、どうだろうか?
205 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 05:27:51 ] >>204 ストラウストラップ教本 の方がまだ面白い
206 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 06:11:35 ] google code search以上の物が出来るとは到底思えない
207 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 09:55:11 ] >>204 インクリメンタルに検索できるやつにしてね。
208 名前:164 mailto:sage [2008/10/14(火) 13:48:50 ] >>166 、>>167 レス、ありがとうございます。 モジュール名を聞くとド真ん中な感じですが、 自分では見つけられませんでした。。。 Net::InterfaceモジュールをCPANからダウンロード して試してみました。 常用しているActivePerl5.8@Winにインストール しようとしたところ、残念ながらうまくいきませんでした。 ちょっとソース(siteconf)を覗いたんですが、どうやら UNIX系専用のようですね。超残念。 別環境として、Perl5.6@UNIX系もありましたので、 そこでインストールしてみると、ちゃんとインストール できました。 スクリプトを書いて動作確認したところ、たしかに 期待どおりの情報(IP、Subnet Mask、MACアドレス)を 取得することができました。 本稼働はUNIX系で行うつもりだったので、これで 充分ではあるのですが、できればWindows環境でも 実行したいです。 Windows環境で同様の情報を取得する方法は ないでしょうか?
209 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 14:01:48 ] Net::Ifconfig::Wrapper - provides a unified way to configure network interfaces on FreeBSD, OpenBSD, Solaris, Linux, OS X, and WinNT (from Win2K). はどうかな。説明文を読む限りでは使えそうだが試したことはない。
210 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:25:58 ] XMLをあつかいたくて use XML::Tidy; my $tidy = XML::Tidy->new($_); とやっております。 このとき、不完全なXMLのときは、mismatchエラーが発生しますが、 これを無視して、可能な限りXMLを解釈して読み込むことはできないのでしょうか? バージョンは perl : v5.8.8 XML::Parser : 2.34 XML::Tidy : 1.2.54HJnFa です。
211 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 22:41:55 ] XML::Tidyじゃなくなるけど、 XML::Liberal+XML::LibXMLなんて組み合わせは?
212 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 23:18:27 ] >>211 ありがとうございます。 試してみます。
213 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 12:54:22 ] 古いPerlのコードで &jcode'convert(*title,'jis'); というコードがあったんですが、これってどういう意味ですか。 &jcodeのあとの「'」がわかりません。
214 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 12:59:01 ] >>213 www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html > 古いパッケージ区切り子はシングルクォートでしたが、 > 現在はダブルコロンを使うのが推奨されています。 > 古い構文も互換性のためにまだサポートされているので、 > "This is $owner's house"のようにすることもできます。 > これは$owner::sをアクセスします。
215 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 15:14:35 ] >>210 それがDOMを構築しようとするものなら、 エラーが出るのはどうしようもないのでは。 かわりにSAX系のパーサーを使えば? XML::Parserとか。 それなりにめんどくなりそうだけど。
216 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 16:47:01 ] pc11.2ch.net/test/read.cgi/prog/1221545019/168 この人小学生からperlやってるってよ
217 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 18:05:05 ] >>214 さんくす Perlの古い書き方だったんですね
218 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 20:12:37 ] Perlに古いも新しいもない。
219 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 21:21:12 ] そうですね。 >>217 で書いてるのはPerlの書き方が古いか新しいかですけどね。
220 名前:デフォルトの名無しさん mailto:sage [2008/10/16(木) 00:57:28 ] 律儀な人ね
221 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 01:04:15 ] クロージャーって意味がわからんな カンタンに説明してくれないか?
222 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 03:29:24 ] 自分で調べようともしないお前に誰が教えるもんか!
223 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 03:41:29 ] 無名の関数ですね^^
224 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 12:54:52 ] >>221 エロ画像フォルダで実感しろ。…普通に object 指向で書く方が楽だ罠。 use File::Find ; use Data::Dumper ; use Cwd ; my $outer = sub{ return 1 if !( -d and /.[.][^.]*?$/) ; $File::Find::prune = 1 ; return ; } ; my %hash ; my %hash2 ; my $inner = sub{ return if ! m{\.(?:jpg|bmp|png|gif)$} ; $hash{$File::Find::name} = -s $_ ; } ; my $inner2 = sub{ push @{$hash2{ uc unpack q{A7}, $_ }}, $File::Find::name ; } ; my $code = sub { my $outer = shift ; sub { # コレが closure my $inner = shift ; sub { return if ! $outer->() ; $inner->() ; } } }; my $base = $code->( $outer ) ; find $base->($inner), getcwd ; find $base->($inner2), getcwd ; print Dumper \%hash, \%hash2 ;
225 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 12:55:36 ] >>223 違うとマジレス。 ちゃんとした説明はなかなか大変だよなー。
226 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 14:09:39 ] >>221 www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq7.html#what_s_a_closure
227 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 19:05:02 ] スカラー変数の中身の種類(文字列とか、配列のリファレンスとか)を 調べるにはどうしたらいいですか?
228 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 19:11:14 ] ref
229 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 19:13:16 ] >>227 ref
230 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 19:22:50 ] >>228-229 サンクス
231 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 21:30:11 ] モジュールのバージョンをまとめて上げたら MechanizeでBASIC認証がなぜか出来なくなった… UserAgentオーバーライドしてもcredentialsでもだめ id:pass@hoge.com/ とかやると繋がるけど… 何が悪いんだろう… 同じような人が居たらヒントでもいいんで教えてもらえると有難いです。。
232 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 21:36:23 ] >>231 デバッグフラグ立てて動作トレース
233 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 21:48:51 ] >>232 ありがとうございます。 やってみます。m(_ _)m
234 名前:231 mailto:∧||∧sage [2008/10/18(土) 00:02:44 ] Basic.pmで初期化されていない値云々というメッセージがでるので LWP/Authen/Basic.pmのauth_headerにある「$user, $pass」に 試しに値を入れてみたら問題なく繋がった LWPでauthorization_basicを試してみたら此方も問題なく成功 Mechanizeでもauthorization_basicを呼び出すようにしたら此方も成功 吊ってきます…
235 名前:デフォルトの名無しさん [2008/10/18(土) 11:04:50 ] Linux 上で MS word の *.doc ファイルを読み出したいんですが、何かいい方法はありますか。 Spreadsheet::ParseExcel みたいなのがないかと CPAN を探したのですが、見当たりません。
236 名前:デフォルトの名無しさん mailto:sage [2008/10/18(土) 11:39:28 ] 『LinuxでWord文書をテキストファイルに変換するには』 ttp://www.atmarkit.co.jp/flinux/rensai/linuxtips/943wvware.html Antiword is a free MS Word reader www.winfield.demon.nl/ OpenOffice.org ja.openoffice.org/
237 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 06:50:02 ] >>236 有難うございます。やはり、perl から呼べるものはないようですね。 文書全体の読み出しだけでなく、「XXページにXXX があったら、XX+n ページに対応するXXXXがあるかチェックする」といった処理もできれば、 と思っていたのですが。それにしても Spreadsheet::ParseExcel は偉大だ…
238 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 07:26:47 ] ハッシュが詰まった配列から、一つずつ取り出して各々に処理をしたいんですがforeachじゃ出来ませんでした。 何か良い方法ありますか?
239 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:05:47 ] while each
240 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:11:04 ] foreachで出来るだろ?
241 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:27:00 ] >>238 そういう意味じゃないんです… >>240 foreach %hoge (@fuga)としたら、syntax error at Z:\script\test.pl line 9, near "foreach %hogeって言われました
242 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:36:10 ] foreach $hash_ref (@foo) { $hash_ref->{bar} }
243 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:40:57 ] それは…リファレンスですか? 試してみたら通りました。回答ありがとうございました
244 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:43:16 ] そもそも「ハッシュが詰まった配列」と君が呼んでいるものの正体が 「ハッシュのリファレンスが詰まった配列」だから。 foreachで一つ一つ取り出す時も、当然それをリファレンスとして扱わなきゃダメ。
245 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 12:50:50 ] ……難しいorz 適当に入門サイト眺めただけだとやっぱり駄目ですね、今度らくだ本買ってじっくり読むことにします
246 名前:質問 [2008/10/19(日) 16:56:31 ] ファイルに書き込まれている特定の文字列(ABC数字)を抽出するにあたってよい方法はありますか? ・取得したい文字列の例は、ABC+数字で構成される たとえばABC11やABC2543など ・ファイルによっては行数が異なる。 ・各行に取得したい文字列は0個以上ある。 ・各行で、取得したい文字列が位置する場所はさまざま。(先頭にあったり、途中にあったり、)
247 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 17:00:19 ] >>245 本も良いがまずは perldoc に当たる習慣を付けた方がいい。 メジャーなドキュメントなら和訳も web を探せばある。 ttp://perldoc.jp/docs/ ttp://fleur.hio.jp/perldoc/ ttp://homepage3.nifty.com/hippo2000/perltips/index.htm
248 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 17:10:30 ] >>246 ふつうに1行ずつ読んでパターンマッチして切り出していけばいいだけ。
249 名前:質問 [2008/10/19(日) 17:20:17 ] >>248 各行に0〜数個(決まりはないけど最大10程度)あるので・・ if($_=~/ABC(\d+))/) なら1つは取得できても、その他の文字列をどうやって取得すればいいのか・・ ファイルの例) マツダ スバル ABC111 ABC23 トヨタ 日産 本田 ABC2222 ↑ここからABCxxxの文字列だけ抽出したい
250 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 17:26:11 ] >>249 マニュアル見れ
251 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 17:27:06 ] >>249 必要な数だけパターンマッチして切り出していけばいいだけ。
252 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 18:32:45 ] マニュアル読まないヤツ大杉 >>241 >foreach %hoge (@fuga) こんな無茶な構文あり得ないだろ >>249 パターンマッチのオプションを調べれ
253 名前:デフォルトの名無しさん mailto:sage [2008/10/19(日) 20:46:49 ] >>249 # 一行ヒント野郎 perl -nle "$, = ' '; print $., /ABC\d+/g" < ファイル名
254 名前:デフォルトの名無しさん [2008/10/21(火) 23:09:08 ] いくつか教えてください。 Perlでブログ(RSSつき)みたいな機能って作れますか? あと家計簿なんかも作れますか? 今勉強中なんですが、目標が無いと挫折しそうなんです(^^;)
255 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 23:10:53 ] >>254 おまえならやれる。
256 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 23:29:51 ] Perl単体じゃあ家計簿は無理じゃない? Perl/Tk使うのかな。
257 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 23:56:14 ] >>256 っ[Web]
258 名前:デフォルトの名無しさん [2008/10/22(水) 00:32:22 ] PerlMagickを使って画像を編集したいのですが、 $image_dataに画像データが入っていて、それを読み込み/編集/書き込みたい場合はどうやったらいいのでしょうか? $image->Read($image_data); $image->Flip; $image->Write($image_data); のようなことです。
259 名前:258 mailto:sage [2008/10/22(水) 00:53:16 ] ↓で出来ました。スレ汚しすいませんでした。 my $image = Image::Magick->new(magick=>'gif'); $image->BlobToImage($image_data); $image->Flip(); $image_data = $image->ImageToBlob();
260 名前:デフォルトの名無しさん mailto:sage [2008/10/22(水) 13:06:56 ] 家計簿なんてExcelでいいじゃん
261 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 00:28:09 ] >>256 > Perl単体じゃあ家計簿は無理じゃない? 確かにそうだな。まともなシェルが必要だ。
262 名前:デフォルトの名無しさん [2008/10/23(木) 01:44:57 ] >>260 俺も最初そう思ったんだが、Excelは結局馬鹿だし、Excel用アドイン作ってる連中も馬鹿だから以下のようにした。 ・入力はExcel ・Perl+Spreadsheet::ParseExceでウハウハ ・Perlで計算 ・Perl+LaTeX系モジュールで帳票自動生成&改ページ自動編集&印刷 これで8年くらい確定申告の提出書類を作成してる。 いまだに国税庁のマルサは来ない。 まー奴らは俺みたいな貧乏人はスルーしてるだけだがw
263 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 20:36:56 ] www.google.com/trends?q=ruby%2Cperl%2Cpython&ctab=0&geo=all&date=all&sort=0 pythonにも負けてる(藁
264 名前:デフォルトの名無しさん [2008/10/24(金) 14:43:04 ] PerlでCのプリプロセッサのように#ifdefでコンパイルするコードを切り替えたりとかってできませんか?
265 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 14:50:59 ] >>264 できる
266 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 14:58:18 ] >>264 つ-Pオプション でもいろいろ問題あるから使わないほうがいいよ。 最終的に何をしたいのかわからないが、たいてい 使わないでできるもっといい方法がある。
267 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 23:33:04 ] perlでアパッチのアクセスログを振り分けるってできる?
268 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 23:35:36 ] きみの能力しだい。
269 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 23:38:16 ] >>267 もちろんできる。できない理由はない。
270 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 23:45:05 ] おまえらにやらせようと思ったんだけど、コード書く?
271 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:24:17 ] >>270 そういうときは、報酬も書いておくと話が早く進むぞ。
272 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 01:59:01 ] じゃあ1円
273 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 07:03:27 ] 進まねぇよ
274 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 14:56:52 ] Perlで線形リストのようなデータの持ち方をしたいのですが、 どうすればいいでしょうか? a->b,c a->b->d,e a->c->f,g のような感じです
275 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 16:02:27 ] リファレンス使えばいいのでは?
276 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 16:17:22 ] あるいは古式ゆかしく配列を使うか
277 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 22:40:17 ] UNIXマシンからとある機器arielに対してtelnetセッション をはりっぱにし、arielから吐かれるメッセージをローカル のディスクにロギングしたいとです。。。 arielの仕様では、無通信時間5分でtimeoutになるので 5分毎に"\n"を送信しようと思います。 自分の頭では以下の様に、whileループでarielからのデータ を待ち続けるロジックしか思いつかず、これでは5分毎の "\n"送信をどうして行えばよいのか解りませんとです。 エロい方、なんとか教えてください。。。 open (OUTLOG,">>./ariel.log"); $socket = IO::Socket::INET->new( PeerAddr => 'ariel', PeerPort => '23', Proto => 'tcp', ); if ( ! $socket ){ die } while(1){ $buf = <$socket>; print OUTLOG $buf\n"; }
278 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 23:08:28 ] >>277 とりあえずNet::Telnet使えば?
279 名前: ◆TWARamEjuA mailto:sage [2008/10/25(土) 23:10:30 ] cronで5分ごとに\nを送信してあげる別プロセスを作っておく。
280 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 23:49:42 ] レスあんがあちょです >>278 Net::telnetは @result = $telnet->cmd("ls -l"); の様な使用例しか無いので、>>277 のケースではどうかなーって思って >>279 別プロセスでなく、同一セッション中で"\n"送らないとダメな気がします って、んん?別プロから何かシグナルをこのプロセスに対して5分間隔 送ればいいのかぁーー!? そんなのできるんかな、調べてみよう
281 名前:デフォルトの名無しさん mailto:sage [2008/10/25(土) 23:56:55 ] >>280 シグナルハンドリングを知っているなら、alarmで起こせばいいだろ。
282 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 00:29:26 ] >>281 おおっ!何と言うことでしょう。 なんだか出来そうな予感がしてまいりました。 月曜に会社行くのが楽しみになってきたw ヒントあんがちょ。多謝です。 こんなカンジかな? 略〜 $SIG{ALRM} = \&timeout; # timeout時の¥に実行する関数 alarm 280; # 5分=300秒より小さい値でアラーム while(1){ $buf = <$socket>; print OUTLOG $buf\n"; } sub timeout { print <$socket> "\n"; # 待望の"\n"送信!! alarm 280; # アラーム再設定 }
283 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 15:29:24 ] 手元のIMAP鯖からGMailにメールを引っ越すスクリプトを書いてます。 Mail::IMAPClientベースで書いていたのですが、 $from->migrate($to, "ALL", "OUTBOX") or die "Could not migrate: $@ \n"; この行で手元サーバからGMailへメールを移行しようとしても、移行できていないようです。 $from は 手元サーバ, $to はGMailです。GMailへの接続login自体はうまくいっているようです。 OUTBOXラベルはGMail側で作って、IMAPから見えるように設定済みです。 アドバイスいただけますでしょうか?
284 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:12:50 ] >>283 自己解決。migrateを使うのを諦めて、appendとfetchで処理しました。 お騒がせスマソ。
285 名前:デフォルトの名無しさん [2008/10/26(日) 17:43:20 ] 通常、文字列の頭から適用される正規表現を後ろから見る方法はないでしょうか? 例えば、以下のように行った場合、 --------------------- my $str = 'a b c d'; $str =~ s/ //; --------------------- a直後のスペースが消えますが、cの後ろのスペースを消すような正規表現は出来ないでしょうか? abcdといった文字列は可変です。 事前に文字列を反転させるしか思い浮かばないのですが他に方法はあるのでしょうか? 宜しくお願いします。