- 1 名前:nobodyさん mailto:sage [2007/09/16(日) 19:49:43 ID:???]
- Perlのコーディングで困ってる人のスレです。
【投稿する際の注意】 質問するときは内容をよく吟味してから投稿してください。 「コマンドの意味がわかんない」とかはマニュアル見ましょう。 回答者さんは何でも屋じゃありません。 1: 自分はこういう事がしたい。 2: それでこんな風にやってみたが・・・ 3: こんなエラーが出て上手く行かなかった。 最低でも1と3が無いと誰も答えられないよ。 良い回答は良い質問から。一緒に勉強しましょう。 お勧めサイトは >2 以降 前スレ ttp://pc11.2ch.net/test/read.cgi/php/1180492441/ 過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
- 189 名前:nobodyさん mailto:sage [2007/09/30(日) 10:12:50 ID:???]
- >>188
くだらない質問でもど偉そうに聞いていいスレ pc11.2ch.net/test/read.cgi/php/1158647441/
- 190 名前:164 [2007/09/30(日) 11:09:19 ID:9pVP3h63]
- もしもお前に部下がいるなら可哀想だ。
まだ使う側でないというなら、今のうちに間違いを指摘してきた相手が目下だと反省のできない上司にならないよう気をつけておけ。
- 191 名前:nobodyさん mailto:sage [2007/09/30(日) 12:11:48 ID:???]
- >>188
「最小コードを書け」 って言われたから書いたまでだが? >>175で package に関する点は指摘されてるだろ >>187 mod_perl の mod の字も出てないのに…
- 192 名前:nobodyさん mailto:sage [2007/09/30(日) 12:51:11 ID:???]
- 自分の読解力、理解力の無さを棚に
上げて回答者を批判する男の人って…
- 193 名前:164 [2007/09/30(日) 14:35:18 ID:9pVP3h63]
- >>191
>>175のどこがpackageに関する点の指摘なのよ。 あれじゃサブルーチンを別ファイルに移した事の指摘だろ。 >>192 女ならいいのか?クソフェミニストめ。
- 194 名前:nobodyさん mailto:sage [2007/09/30(日) 15:37:17 ID:???]
- 質問してもよろしいでしょうか?
すみませんが宜しくお願いいたします。 特定の契機を迎えたとき? @_や$_には値が自動でセットされるようになっていますよね? その契機の一覧みたいなものが知りたいのですが、膨大ですか? うまくまとめてるサイトあれば教えてください。
- 195 名前:nobodyさん mailto:sage [2007/09/30(日) 15:38:11 ID:???]
- やはり読解力の欠片も無いな
- 196 名前:nobodyさん mailto:sage [2007/09/30(日) 15:44:41 ID:???]
- >>194
search.cpan.org/~nwclark/perl-5.8.8/pod/perlvar.pod perldoc.jp/docs/perl/5.6.1/perlvar.pod ラクダ本
- 197 名前:nobodyさん mailto:sage [2007/09/30(日) 16:14:26 ID:???]
- >>179
5.005とか5.6と互換を取るのに便利だったりする。 (5.005は古いバージョン使ってたり、変換規則が違ったりするけど。) それはともかく、チュートリアルをpodで欲しいとか思うよね。 unicodeのチュートリアルとか、あっちこっちにドキュメントが散らばってて、 しかも、翻訳も無かったりして、初心者にはきついと思う。
- 198 名前:nobodyさん mailto:sage [2007/09/30(日) 23:01:50 ID:???]
- コーディングではないけれどPerl関連(Windows関連?)ということでお願いします。
PerlのパスをUNIX風に設定しておくことってできますか?(usr/bin/perl) 今は5.8なんですが、前に5.6の頃、実際のパスがc:\perlだとしても この書き方(パス)で動いてた気がするんだけど・・・
- 199 名前:nobodyさん mailto:sage [2007/10/01(月) 00:24:00 ID:???]
- 5.8でも動く件
- 200 名前:198 mailto:sage [2007/10/01(月) 01:04:55 ID:???]
- >>199
すんません、ブラウザでCGIとして起動した場合はどうですか? 関連に気づかなくて書かなかったんですが、 こちらでもプロンプトでは動くんだけど、ブラウザではアウトです。
- 201 名前:nobodyさん mailto:sage [2007/10/01(月) 01:27:53 ID:???]
- 普通にpath通せばいいんじゃね?
- 202 名前:nobodyさん mailto:sage [2007/10/01(月) 02:12:06 ID:???]
- それはPerlじゃなく各々のhttpdの管轄
なので他の適切なスレを当たって下さい
- 203 名前:198 mailto:sage [2007/10/01(月) 02:14:31 ID:???]
- >>201
ありトゥース!・・・が、しかし。。 恥をしのんでお尋ねしますが、パス通すって・・? Windowsの環境変数にusr/bin/perlを追記するってことではないですよね。 い、いかように・・・
- 204 名前:nobodyさん mailto:sage [2007/10/01(月) 07:19:52 ID:???]
- 関連付けでおk。
- 205 名前:nobodyさん [2007/10/01(月) 09:49:39 ID:4GodVsb7]
- >>180
レス遅くなってすみません。 JcodeやめてEnocdeで対応させました。 perlのバージョンは5.8、Jcodeは最初サーバーには入っていなかったので 自前で自分のディレクトリにインストールして使ってました。 それで問題なかったのですが最近サーバの方が用意してくれたらしく そっちを読み込むようになってました。 そのサーバにインストールされた新しいJcodeで問題が発生していたと言う次第でした。 しかし新しいJcodeはなんであんなとんでもないバグを持ってるんだろうか。 UTF-8変換できなきゃJCodeの存在意義が無くなるのに。
- 206 名前:nobodyさん mailto:sage [2007/10/01(月) 10:32:27 ID:???]
- >>203
環境変数にperl.exeのパスを通せばいい。 もしくは出来るならhttpdの方で指定するとか。
- 207 名前:nobodyさん mailto:sage [2007/10/02(火) 00:21:38 ID:???]
- >>203
かなり無理やりな解決方法。 C:\直下にusrを作って、そこへC:\Perl\bin\(Enter連打でinstした場合)をフォルダごとコピー。 でC:\Perl\lib\とC:\Perl\site\もフォルダごとコピー。 これでC:\usr\直下に、binとlibとsiteができる。 それでcgiファイルの頭に #!/usr/bin/perlでOK。 でも、ppmや、自前でモジュールインストールする度に、本来のC:\Perl\以下よりlibやsiteをコピー しなければならないし、UpgradeやUninstallの時も当然ながら消してはくれません。 普通の人にはお勧めできない。 実を言うと、C:\直下にusrやtmpやvarなんかを作ってると、perlスクリプトの中からフルパスで /var/tmp/〜とかやってファイル操作したりするのに、Unix環境といちいち書き換えなくて済むっちゅう 横着ができたりします。
- 208 名前:nobodyさん mailto:sage [2007/10/02(火) 00:40:37 ID:???]
- activeperlで>207の方法をやるなら、perldoc reloc_perlを見ると幸せになれるかもしれない。
- 209 名前:nobodyさん mailto:sage [2007/10/02(火) 01:54:23 ID:???]
- 質問です。
LWP::UserAgentとCrypt::SSLeayを利用して、SSLでサーバと通信を行っています。 相手先の証明書が、期限切れなど信頼できない場合は、以降の処理を打ち切りたいのですが、 それを判別するにはどうすればよいですか?
- 210 名前:nobodyさん mailto:sage [2007/10/02(火) 02:05:01 ID:???]
- LWP::Protocol::httpsにヒントがあるかもね
- 211 名前:180 mailto:sage [2007/10/02(火) 02:34:16 ID:???]
- >>205
ん、別に少し間が開いたくらいは気にせんからいいよ。 ただ、サーバー管理者が入れたのがおかしいってのは変だね。 症状からすると、(わざわざ)pure perl のコードを選択したときのバグっぽいけど これって fix されたんじゃなかったっけか? それにPerl本体が 5.8なら Encodeを利用する形でJcodeは入るはずだしなあ。
- 212 名前:nobodyさん [2007/10/02(火) 06:25:36 ID:SbhRpQr+]
- レン鯖に特定のモジュールがインスコされてるかどうか
テストするのに良い方法はないでしょうか?
- 213 名前:nobodyさん mailto:sage [2007/10/02(火) 07:23:13 ID:???]
- @INCを総当たり
- 214 名前:nobodyさん mailto:sage [2007/10/02(火) 08:34:43 ID:???]
- >>211
原因を特定できないのなら黙っておけ。
- 215 名前:nobodyさん mailto:sage [2007/10/02(火) 09:25:29 ID:???]
- >>212
実際に use して調べるのが一番確実。 #!/usr/bin/perl -w use strict qw(subs vars); my $token = qr/[A-Z_a-z][0-9A-Z_a-z]*/; my $module = ($ARGV[0] || '') =~ /^($token(?:::$token)*)\z/ ? $1 : ''; my $result = $module ? eval "use $module" : 'usage: .../this.cgi?Module::Name'; $result ||= $@ || qq/$module ${"${module}::VERSION"}/; print "Content-Type: text/plain\n\n$result"; __END__
- 216 名前:nobodyさん mailto:sage [2007/10/02(火) 09:39:01 ID:???]
- もう少し可読性を高める努力をしろよ。
- 217 名前:nobodyさん mailto:sage [2007/10/02(火) 10:20:20 ID:???]
- >>207
インストールしなおしでその構成になるようにしたほうがいいんじゃ・・・
- 218 名前:nobodyさん mailto:sage [2007/10/02(火) 17:33:08 ID:???]
- $^Oが取り得る値のリストってどこかにない?
- 219 名前:nobodyさん mailto:sage [2007/10/02(火) 19:19:35 ID:???]
- >>218
search.cpan.org/~nwclark/perl-5.8.8/pod/perlport.pod#PLATFORMS
- 220 名前:nobodyさん mailto:sage [2007/10/02(火) 20:12:26 ID:???]
- >>215
コードまで書いていただいてありがとうございました。 use <モジュール名> をevalして戻り値を確かめるわけですね。 どうもevalは使うのに躊躇してしまうんですが、こういうときは便利ですね。 >>213 @INCの中を覗くという発想も考えたことがなかったので やってみたいと思います。
- 221 名前:nobodyさん [2007/10/02(火) 21:03:46 ID:2QBdgnfp]
- 日本語変換の問題について質問です。
コードをEUCで書いて、出力をShift_JISで行うのが目的です。 今はjcode.pl使っています。 activeperlのwinxp用でローカルチェックをしています。 JCODEというモジュールもあるそうですが、activeperlには初期状態でなかったりしますよね。 確か自分は入れた覚えもあるのですが。 オススメは何ですか? 確か他にも変換用のモジュール?はあったと思いますが。 euc,shift_jis,jisの3つだけでのオススメが知りたいです。
- 222 名前:nobodyさん mailto:sage [2007/10/02(火) 21:47:16 ID:???]
- >>221
万能解は無いので、Encode / Jcode / jcode.pl / Unicode::Japanese を 一通り使い込んでから、好みと用途に合ったものをお選びなさいな。
- 223 名前:nobodyさん mailto:sage [2007/10/02(火) 23:24:50 ID:???]
- いまさらjcode.pl薦めるなよ。
- 224 名前:221 [2007/10/02(火) 23:41:50 ID:2QBdgnfp]
- jcode.plを除いて一番汎用的に使えるのはどれですか?
汎用的って言っても、サーバーやローカル環境で一番広く使えるものです。 一番広まってるモジュールといえばいいのですかね。
- 225 名前:nobodyさん mailto:ge [2007/10/03(水) 00:23:34 ID:???]
- リストをリストのままリストの個数を得るにはどうすればいいですか?
(1,2,3,4,5) これを配列にいれずにってことです。 grepとかでもリストが作られますよね。 そういうときにわざわざ配列に入れてから要素数を知るのが面倒です。 scalar(@{[grep{$_>0}]}) っていうのも同じくなんかなぁと思います。 普通にないなら関数作ろうと思うのですが。
- 226 名前:nobodyさん mailto:sage [2007/10/03(水) 00:41:53 ID:???]
- scalar(@{[1,2,3,4,5]})
- 227 名前:nobodyさん mailto:sage [2007/10/03(水) 00:41:53 ID:???]
- はあ
- 228 名前:nobodyさん mailto:sage [2007/10/03(水) 01:16:44 ID:???]
- システムに依存する組み込み関数が使用できるかどうか
手っ取り早く調べる方法ってなにかな?
- 229 名前:nobodyさん mailto:sage [2007/10/03(水) 01:49:55 ID:???]
- >>224
インスコしてなかったら自分で読み込むようにすればいいよ。 use libつかうなり同階層に置いてuseするなり。
- 230 名前:nobodyさん mailto:sage [2007/10/03(水) 01:58:30 ID:???]
- >>224
Perl 5.8.x なら標準モジュールの Encode が一番広まっていると言えば 広まっている。 >>225 リストコンストラクタが幾つの要素を吐くかは、吐かせてみないと 分からない。吐かせた結果を保存しないのなら、目の前を流れていく 個数を数えるしかない。 sub count { scalar @_ } $num = count((1) x rand 10); $num = scalar @{[ (1) x rand 10 ]}; $num = 0; ++$num for (1) x rand 10; >>228 search.cpan.org/~nwclark/perl-5.8.8/pod/perlport.pod#FUNCTION_IMPLEMENTATIONS に目を通した上で eval 内で実際に使用して確認。
- 231 名前:225 [2007/10/04(木) 00:46:59 ID:kUiVRXqk]
- >>230
黒魔術みたいなコードはいけないってこのスレで教えてもらいました。 素人ながら納得しました。 ですからあなたもそういうコード書いていてはいけないと思います。 それも教える側でそれを使うと黒魔術が流行ってしまいます。 僕にはあなたのコードが何をしてるのかわかりません。
- 232 名前:nobodyさん mailto:sage [2007/10/04(木) 00:52:08 ID:???]
- ++$num for (1) x rand 10;
こんな書き方はじめてみたw 7行プログラミングとかに出てきそうだな。 だれか解説というか一般的な形にしてクレクレ
- 233 名前:nobodyさん mailto:sage [2007/10/04(木) 00:57:28 ID:???]
- foreach((1) x rand(10)){
++$num; }
- 234 名前:nobodyさん mailto:sage [2007/10/04(木) 02:06:39 ID:???]
- こんなの全然黒魔術じゃないと思うが・・・
- 235 名前:nobodyさん mailto:sage [2007/10/04(木) 03:26:46 ID:???]
- 中身が1行のfor(もしくはforeach)なんて普通こう書かんか?
↑もう何年もforeachなんて書かずにforで済ませてるからスペル調べちまったw
- 236 名前:nobodyさん mailto:sage [2007/10/04(木) 03:33:49 ID:???]
- それは分かりづらい。括弧でくくった方がいいな。
++$num for ((1) x rand 10);
- 237 名前:nobodyさん mailto:sage [2007/10/04(木) 06:44:51 ID:???]
- これだからPerlのコードは気持ち悪いんだよな
- 238 名前:225 [2007/10/04(木) 07:08:27 ID:kUiVRXqk]
- ((1) x rand(10))
これの意味がわかりません。 1*10とどう違うんですか。 それとforに10とか与える意味も。 0..10ならわかるけど。
- 239 名前:nobodyさん mailto:sage [2007/10/04(木) 08:10:41 ID:???]
- このスレは精神障害者ばかりですね。
- 240 名前:nobodyさん mailto:sage [2007/10/04(木) 08:14:34 ID:???]
- >>231
その程度の実力で関数を自作するってかw
- 241 名前:nobodyさん mailto:sage [2007/10/04(木) 09:03:58 ID:???]
- >>238
ひょっとして >吐かせた結果を保存しないのなら、目の前を流れていく >個数を数えるしかない。 の意味がわかってないのか? お前が一定の個数で決め打ちしたいなら最初からそうすればいいだけ。
- 242 名前:nobodyさん mailto:sage [2007/10/04(木) 09:42:16 ID:???]
- >> grepとかでもリストが作られますよね。
>> そういうときにわざわざ配列に入れてから要素数を知るのが面倒です。 grepに限って言えばスカラーコンテキストでは条件が真になる要素数を返すわけだが。 % perl -e 'print scalar(grep { $_ > 0 } 0,1,1,0,1)' 3
- 243 名前:nobodyさん mailto:sage [2007/10/04(木) 09:43:48 ID:???]
- x 10ならわかるけどなんでrand(10)なん?
それがいまいちわからんぽ
- 244 名前:nobodyさん mailto:sage [2007/10/04(木) 10:10:16 ID:???]
- いつも10だと面白くないと思って乱数にしただけで特に意味はないだろう。
そんなこと気にしてるとハゲるぞ。
- 245 名前:nobodyさん mailto:sage [2007/10/04(木) 10:20:27 ID:???]
- >>238
perldoc.jp/docs/perl/5.8.8/perlop.pod 「Multiplicative Operators operator, multiplicative」の項 rand EXPR は 0 以上 EXPR 未満の値を返すので、整数値が欲しい際は 通常 int() を通す。但し perl が整数値を欲しがっている箇所に小数値が 与えられた場合は、自動で整数値に丸められる。 $str = substr('abcd', 0, rand 5); # '', 'a', 'ab', 'abc', 'abcd' $var = $array[ rand @array ]; # @array 中の要素からランダム選出 x 演算子の右辺は「個数」という整数値を要求しているので、(1) x rand 5 という式は (), (1), (1,1), (1,1,1), (1,1,1,1) のいずれかになる。 >>243 >>241 が指摘してくれているように、最初から個数が分かっているなら 「リストをリストのままリストの個数を得る」必要はなく、$num = 10; 等と書いておけば済む。(1) x rand 10 という式には「要素数が不定で」 「コピペですぐ動作確認できる」リストのサンプルという以上の意味は無い。
- 246 名前:nobodyさん mailto:sage [2007/10/04(木) 17:45:56 ID:???]
- これ何?
$|++;
- 247 名前:nobodyさん mailto:sage [2007/10/04(木) 18:42:58 ID:???]
- 出力バッファの自動フラッシュを抑制
- 248 名前:nobodyさん mailto:sage [2007/10/04(木) 18:43:28 ID:???]
- ハニーフラッシュ!
- 249 名前:nobodyさん mailto:sage [2007/10/04(木) 18:44:27 ID:???]
- 抑制じゃねえ間違えた まあいいや
- 250 名前:nobodyさん mailto:sage [2007/10/04(木) 19:48:49 ID:???]
- プログラミングPerlのパッケージ、オブジェクトの章を読んでも意味が
さっぱりわからなかったのですがどうすればいいですか? みなさんはあそこに書いてあること、あっさりわかりました?
- 251 名前:nobodyさん mailto:sage [2007/10/04(木) 20:48:51 ID:???]
- >>250
ラクダ本だけでは実感が掴みにくいような。 www.rfs.jp/sb/perl/ でも解説されてる。 同じ説明でもいろんな説明を見ると分かってくるような。
- 252 名前:nobodyさん mailto:sage [2007/10/04(木) 21:37:38 ID:???]
- >>250
fleur.hio.jp/perldoc/mix/pod/perlboot.html
- 253 名前:nobodyさん mailto:sage [2007/10/05(金) 09:42:06 ID:???]
- OOP 勉強したいなら Plagger に入門すればいいよ!
- 254 名前:nobodyさん mailto:sage [2007/10/05(金) 12:41:48 ID:???]
- >>251
これは本当に超初心者向けといった感じですね。 >>252 これはわかりやすい! >>253 こんな面白いものがあったんだ
- 255 名前:nobodyさん [2007/10/06(土) 12:48:34 ID:PfM+S4yJ]
- foreach(){}
↑フォーイーチみたいな発音でいいですよね・・・?
- 256 名前:255 [2007/10/06(土) 13:03:13 ID:PfM+S4yJ]
- 追加お願いします。
use strict; my %hash = qw/2 5 s 2 d 3/; print map{"$_ " , 1}keys %hash; >Execution of C:\test.pl aborted due to compilation errors. これ何がいけないんですか? print map{$_ ," ", 1}keys %hash; こう書き換えるとエラーになりません。 activeperl5.8.1のwinxp稼動です。
- 257 名前:255 [2007/10/06(土) 13:23:18 ID:PfM+S4yJ]
- ぐるせいや。ぐるせいや。
- 258 名前:nobodyさん mailto:sage [2007/10/06(土) 13:30:22 ID:???]
- >>256
perldoc map見れば分かる
- 259 名前:255 [2007/10/06(土) 15:01:35 ID:PfM+S4yJ]
- >>258
すいません。わからないです。 教えてください。
- 260 名前:nobodyさん mailto:sage [2007/10/06(土) 15:40:28 ID:???]
- > perldoc map見れば分かる
> map - An utility to map texts from and to unicode ねーよwww
- 261 名前:255 [2007/10/06(土) 17:19:29 ID:PfM+S4yJ]
- どなたか>>255-256の回答お願いできませんでしょうかm(__)m
- 262 名前:nobodyさん mailto:sage [2007/10/06(土) 17:33:12 ID:???]
- print map{("$_ ", 1)} keys %hash;
- 263 名前:nobodyさん mailto:sage [2007/10/06(土) 17:33:28 ID:???]
- 読み方なんてどーでもいいじゃん
スクールでも始める気か?
- 264 名前:nobodyさん mailto:sage [2007/10/06(土) 17:44:55 ID:???]
- >>255
dictionary.goo.ne.jp/search.php?MT=for&kind=ej&mode=0&base=1&row=1 dictionary.goo.ne.jp/search.php?MT=each&kind=ej&mode=0&kwassist=0 これぐらいは辞書引いたらどうよ。 >>256 perldoc.jp/docs/perl/5.6.1/perlfunc.pod > { はハッシュリファレンスとブロックの両方の開始文字なので、 > map { ... は map BLOCK LIST の場合と map EXPR, LIST の場合があります。 > perl は終了文字の } を先読みしないので、{ の直後の文字を見て > どちらとして扱うかを推測します。通常この推測は正しいですが、 > もし間違った場合は、} まで読み込んでカンマが足りない(または多い)ことが > わかるまで、何かがおかしいことに気付きません。 } の近くで文法エラーが出ますが、 > perl を助けるために単項の + を使うというように、{ の近くの何かを変更する必要が > あります。 perlの構文解析までは知らん。
- 265 名前:nobodyさん mailto:sage [2007/10/06(土) 17:49:40 ID:???]
- >>260
-fを入れることも自分で分からないようではいかんだろって意味であえて書かなかった
- 266 名前:255 [2007/10/06(土) 19:25:29 ID:PfM+S4yJ]
- >>264
ありがとうございます。 それでフォーイーチでいいのですか? 用語なんで普通の読み方で本当にいいのかという意味の質問だったのですが。 mapの方ですが、 my $hash = {"A "=>"5" , "s"=>"2" , "d"=>"3"}; これでエラーが出ないんです。"A "でエラーが出ないのに、どうして print map{"$_ " , 1}keys %hash; でエラーが出て print map{$_ ," ", 1}keys %hash; でエラーが出ないのか。 よくわからないのですが、ハッシュリファレンスとしてエラーが出そうなのは後者だと思うんです。 カンマが足りないってことで。 そして前者はブロックとしても式としても何も問題がないと思うのです。 my $test = 1; if("$test " , 1){ print "ok"; } これを走らせてもエラーでないですし。 そこらへんどういうことなのかわかりますでしょうか?
- 267 名前:255 [2007/10/06(土) 19:28:03 ID:PfM+S4yJ]
- >>265
-fってなんですか? perl.misty.ne.jp/switch.html ここには載ってないですが。
- 268 名前:nobodyさん mailto:sage [2007/10/06(土) 19:31:23 ID:???]
- >>266
>それでフォーイーチでいいのですか? 関数名の読み方に正解なんてないから好きに呼べよ。 余程狂ってなきゃ誰も笑ったりしないよ。 で、結局何が問題なんだ? 結論は既に出てるし、perlの仕様について文句言われても困る。
- 269 名前:nobodyさん mailto:sage [2007/10/06(土) 19:32:40 ID:???]
- 釣りなのか読解力がないのか単なる馬鹿なのか
- 270 名前:nobodyさん mailto:sage [2007/10/06(土) 20:11:35 ID:???]
- >>267
perldocを嫁
- 271 名前:nobodyさん mailto:sage [2007/10/06(土) 20:42:22 ID:???]
- >>267
それはperlのオプション。 あんたが必要なのはperldocのオプションだから、 コマンドラインからperldoc perldocで確認すべし。
- 272 名前:255 [2007/10/06(土) 20:43:43 ID:PfM+S4yJ]
- >>268
何故エラーが出るのかわからないのです。>>266にあるとおりです。 >>264さんのところの話ではつじつまが合わないのです。 >map { ... は map BLOCK LIST の場合と map EXPR, LIST の場合があります。 どちらとして評価しても print map{"$_ " , 1}keys %hash; これでエラーが出る説明になりません。
- 273 名前:255 [2007/10/06(土) 20:47:23 ID:PfM+S4yJ]
- >>271
なるほどつまり-fの意味は perldoc -f map で、mapの仕様を確認しろって事なんですね。
- 274 名前:nobodyさん mailto:sage [2007/10/06(土) 20:59:58 ID:???]
- >>272
{"$_ " , 1}をEXPRとして、keys %hashをLISTと解釈すると、コンマが足らない。
- 275 名前:255 [2007/10/06(土) 22:39:59 ID:PfM+S4yJ]
- >>274
ん・・・ map EXPR, LIST ↑これかーー! 納得です。ずっと{}の中のコンマばかりに注目してました。{}とLISTの間のコンマのあるなしが問題だたのですね。
- 276 名前:nobodyさん mailto:sage [2007/10/06(土) 23:23:20 ID:???]
- フォーイーチでいいんじゃないの?
- 277 名前:nobodyさん mailto:sage [2007/10/06(土) 23:29:56 ID:???]
- perldoc に -f をつけるだけで上場できるインターネッツはここですか?
- 278 名前:nobodyさん mailto:sage [2007/10/07(日) 13:10:36 ID:???]
- むしろ英単語の for と each をくっつけただけのものを
他になんて読めるのか知りたい
- 279 名前:nobodyさん mailto:sage [2007/10/07(日) 15:12:27 ID:???]
- >>278
仏単語の fo と 英単語の reach をくっつけたものという可能性も検討すべきでは?
- 280 名前:nobodyさん [2007/10/07(日) 18:18:02 ID:LZD6O2BK]
- フォーチだろ。
- 281 名前:nobodyさん [2007/10/07(日) 21:49:16 ID:lRWvT8wN]
- ソケット使ってホームページを取得するプログラムを書いてます。
HTTP/1.1 200 OKが返ってきて、Content-lengthもある程度あるのに、 フッタが何もないことがあるのですがどうしてでしょうか。 正常に見れるサイトもあります。 use Socket; use FileHandle; $host = "www.ftnet.or.jp"; $path = "/FTtuusin/index.html"; $port = 80; $ip = inet_aton($host) || &error("host($host) not found.\n"); $SOCKADDR = pack_sockaddr_in($port, $ip); $res = &connect($host,$path,$port); print $res; exit;
- 282 名前:nobodyさん [2007/10/07(日) 21:51:37 ID:lRWvT8wN]
- sub connect {
my ($res, $host, $path, $port); $res = ""; $host = $_[0]; $path = $_[1]; $port = $_[2]; # ソケットの生成 socket(SOCKET, PF_INET, SOCK_STREAM, 0) || return -1; # ソケットの接続 connect(SOCKET, $SOCKADDR) || return -2; autoflush SOCKET (1); print SOCKET "GET $path HTTP/1.1\n"; print SOCKET "Referer: $url\n"; print SOCKET "Host: $host:$port\n"; print SOCKET "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\n"; print SOCKET "Connection: close\n"; print SOCKET "\n"; foreach (<SOCKET>) { $res .= $_; } close SOCKET; return $res; }
- 283 名前:nobodyさん [2007/10/07(日) 21:53:04 ID:lRWvT8wN]
- レスポンスは
HTTP/1.1 200 OK Date: Sun, 07 Oct 2007 11:31:44 GMT Server: Apache/2.0.52 (CentOS) Last-Modified: Fri, 16 Jun 2006 05:41:38 GMT ETag: "4474a-daf-deccc880" Accept-Ranges: bytes Content-Length: 3503 Connection: close Content-Type: text/html
- 284 名前:nobodyさん mailto:sage [2007/10/07(日) 23:54:11 ID:???]
- フッタって何の事言ってる?
- 285 名前:281 mailto:sage [2007/10/08(月) 00:21:06 ID:???]
- すまん、確かにフッタって言葉は違う気がしてきた。
本文の部分です。htmlが書かれてる部分。
- 286 名前:nobodyさん mailto:sage [2007/10/08(月) 02:57:53 ID:???]
- >>281
「何もない」状態を確実に再現できる例を 用意してくれないと、デバッグの手伝いはできないよ。 少なくとも手元の環境だと>>281-282のコードとサイトは 一応動くし全部取得できている。
- 287 名前:nobodyさん mailto:sage [2007/10/08(月) 03:06:09 ID:???]
- HTTPは正確には\nではなく\r\nでそ
- 288 名前:nobodyさん mailto:sage [2007/10/08(月) 03:32:19 ID:???]
- HTTP/1.0にしたら解決しましたって答えは無しな。
わざわざ作るなら1.1を使う物を作ろうよ。
- 289 名前:nobodyさん mailto:sage [2007/10/08(月) 03:33:54 ID:???]
- 答えじゃないな。解決法だなorz
|

|