トップページphp
1001コメント349KB

Perl 初心者コーナー Part22

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/04/15 10:15ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。


CGIだけど、なんか質問ある? Part 10
http://pc2.2ch.net/test/read.cgi/php/1048686475/
参考書籍の話題は、【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は、【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
0110nobodyさん03/04/19 13:16ID:eaFpa2kJ
YAHOO検索で、、、
http://www.google.com/search?q=2%E3%83%81%E3%83%A3%E3%83%B3%E3%83%8D%E3%83%AB&ie=UTF-8&oe=UTF-8
なら、
=〜 tr/+/ /;
=〜 s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
でデコードできるですが、Googleで
http://search.yahoo.co.jp/bin/search?p=2%A5%C1%A5%E3%A5%F3%A5%CD%A5%EB
の場合は、どうすればよいのでしょうか?
どなたかご教授下さいm(_ _)m。
0111nobodyさん03/04/19 13:17ID:???
>106
Perl的に言うなら、index.cgiの中身をhoge.plに移して、各index.cgiから
hoge.plをrequireするとか。
011211003/04/19 13:17ID:eaFpa2kJ
アドレス逆でした、、、
0113nobodyさん03/04/19 13:18ID:???
>>110
Google→Unicode
Yahoo→EUC

この違い
0114nobodyさん03/04/19 13:18ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
011511003/04/19 13:31ID:eaFpa2kJ
>>113

早速のレス、ありがとうございます。
Unicodeの文字列をデコードするために参考になる
ページ等ありますでしょうか?
よろしくお願いします。
0116nobodyさん03/04/19 14:16ID:???
>115
教えてもらったんだろ、
後はてめえで探せよノータリン!
0117117?03/04/19 14:31ID:W+zt+CQT
http://allabout.co.jp/computer/hpcreate/closeup/CU20020331A/index_2.htm

ここに書いてあるとおりにcgiを設定しても動かないんですが
記述とか間違ってませんか? 詳しい人おしえて下さい。
0118nobodyさん03/04/19 14:32ID:???
似ているなぁ〜
ノータリンとノーリターン

http://www.google.com/search?num=100&hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&as_qdr=all&q=perl+Unicode%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97+%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89&lr=
011911503/04/19 15:04ID:JU0nnBeK
>>118

どうもご親切にありがとうございました!
あちこち辿ってみます。
0120nobodyさん03/04/19 15:18ID:???
>>117
どこも間違っていませんが?
012111703/04/19 15:45ID:W+zt+CQT
171です。

<FORM ACTION="http://hoge.ne.jp/jump.cgi">
<SELECT NAME="jumpto">
<OPTION VALUE="-" SELECTED>移動先を選択</OPTION>
<OPTION VALUE="http://www.yahoo.co.jp">yahoo</OPTION>
<OPTION VALUE="http://www.google.co.jp/">google</OPTION>
<OPTION VALUE="http://www.2ch.net/">2ch</OPTION>
</SELECT>
<INPUT TYPE="submit" VALUE="移動">
</FORM>

このように書いても動作してくれないのですが
何がいけないのでしょうか?cgi自体は問題なく
動いてるようです
0122nobodyさん03/04/19 15:50ID:???
117か171か知らないが、
そのCGIは一行目から間違ってるぞ
0123nobodyさん03/04/19 15:52ID:???
>>121
そのCGIがSELECTから受け取る引数をちゃんと処理しないからでしょ
012411703/04/19 15:57ID:DRRtSmLA
117です。打ち間違いです。1行目は変更してるので
とくに問題はないと思うのですが
プルダウンメニューを携帯で使いたくて
cgiを探してやっとで見つけたのがこれなのですが
動作しないんです(>_<)
012511703/04/19 16:11ID:DRRtSmLA
及川奈央 田丸愛 上原里香 のエロ動画upするから教えてください
0126nobodyさん03/04/19 16:11ID:???
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('H2',$1)/eg;
if( $name eq "jumpto" ) {
$jumpto = $value;# 移動先
}
}
0127nobodyさん03/04/19 16:12ID:???
教えたから早くエロ動画よこせ
0128nobodyさん03/04/19 16:15ID:SET3u/9L
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
012911703/04/19 16:23ID:DRRtSmLA
及川奈央
http://www.pp.iij4u.or.jp/~re-com6/0419/062-1.zip
http://www.rr.iij4u.or.jp/~co-com3/0419/062-2.zip
http://www.rr.iij4u.or.jp/~co-com3/0419/062-3.zip
http://www.rr.iij4u.or.jp/~co-com3/0419/062-4.zip
http://www.rr.iij4u.or.jp/~co-com3/0419/062-5.zip

田丸愛
http://www.hh.iij4u.or.jp/~re-com3/0418/061-1.zip

>>126さん
出来ないよ。。。 
0130nobodyさん03/04/19 16:24ID:???
>>129
foreachの中に2行追加するんだぞ?

$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('H2',$1)/eg;
0131nobodyさん03/04/19 16:29ID:???
RealMediaじゃ見られねぇ・・・・
MPEGにしる!
013211703/04/19 16:32ID:???
田丸愛
http://www.hh.iij4u.or.jp/~re-com3/0418/061-1.zip
http://www.hh.iij4u.or.jp/~re-com3/0418/061-2.zip
http://www.hh.iij4u.or.jp/~re-com3/0418/061-3.zip

上原里香
http://www.dd.iij4u.or.jp/~co-com4/0416/059-1.zip
http://www.hh.iij4u.or.jp/~co-com5/0416/059-2.zip
http://www.rr.iij4u.or.jp/~co-com6/0416/059-3.zip

もうダメぽ・・・ 意味不明、俺の就業時間もあとわずか、、、
今日は何もしてないや・・
0133nobodyさん03/04/19 16:36ID:???
プロなのか・・・
いいなあ就職できて。
0134nobodyさん03/04/19 17:05ID:???
その会社が可哀想だ
0135nobodyさん03/04/19 18:30ID:???
>>117
そんな、直リンでUPしましたとか言われてもなぁ。
0136nobodyさん03/04/19 21:24ID:???
>>117
ここはCGI質問スレじゃない。
帰れ。
0137nobodyさん03/04/19 21:51ID:???
及川奈央 萌え萌え 俺もPerl入れようかな。
0138nobodyさん03/04/19 23:43ID:???
画像アップロード付きの掲示板はどういう仕組みなんでしょうか?
0139nobodyさん03/04/20 00:07ID:???
えらく漠然とした質問だな
どう答えればいいんだ?
どこかのスクリプト落としてきてソースを見てください
ってとこか
0140nobodyさん03/04/20 01:04ID:RhiZ2LD4
>>139
>どう答えればいいんだ?
136参照
0141nobodyさん03/04/20 01:12ID:???
>>140
( ゚д゚)なるほどっ!

>>138
ここはCGI質問スレじゃない。
帰れ。
0142nobodyさん03/04/20 01:14ID:???
Perl初心者を大切に育てよう!
0143nobodyさん03/04/20 01:21ID:???
大切に育てるために種から不良品をより分けているだけだ
0144nobodyさん03/04/20 01:30ID:???
そんな事いってたら種がなくなるよ。
Perl初心者を大切にしようよ。
0145nobodyさん03/04/20 01:34ID:???
種は腐るほどある。っていうか腐った種が多過ぎ。
0146nobodyさん03/04/20 01:39ID:???
腐ったのはよけとかないと、せっかくの種まで腐ってしまうもんな
0147nobodyさん03/04/20 01:42ID:???
ここはPerl初心者スレであり、日本語初心者スレじゃないから。
0148nobodyさん03/04/20 01:51ID:???
そんな事いってたら腐った種もなくなるよ。
Perl初心者を大切にしようよ。
0149nobodyさん03/04/20 01:58ID:???
腐った種はなくなっていいじゃないか
0150nobodyさん03/04/20 02:06ID:???
>>148
画像アップロード付きの掲示板はどういう仕組みなんでしょうか?
教えてください。
0151nobodyさん03/04/20 02:33ID:???
誰も教えないのか? Perlする人がいなくなるぞ。

まず掲示板のフォームからCGIに画像ファイルを送るね。
そしたらCGIに画像ファイルが到着するとその画像を扱う処理をします、
(その処理はCGI_Lite.pm等を介して画像ファイルの名前やら大きさやら保存場所やら・・・ね。)
それで保存できてるから画像を表示するのであれば
保存したルート指定すれば表示されるわけですよ。
簡単な説明だけど理解してよ。もう来ないから。

やっぱPHPのほうが楽だな。
0152nobodyさん03/04/20 02:41ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0153nobodyさん03/04/20 02:41ID:???
教えないさ。
ここはコーディングの初心者を相手にするスレだ。
0154nobodyさん03/04/20 02:42ID:???
良い回答は良い質問から。一緒に勉強しましょう。
0155nobodyさん03/04/20 02:53ID:???
>>151
ちゃんと教えてやってるじゃないか。
不適切なところに書くと期待する結果は得られないという
コーディングの基本を。
0156nobodyさん03/04/20 03:13ID:???
エロネタはOK
0157nobodyさん03/04/20 03:30ID:???
>151
ニヤニヤ(・∀・)
0158nobodyさん03/04/20 03:34ID:???
>>151
>まず掲示板のフォームからCGIに画像ファイルを送るね。
それをどうやってPerlで実現するんですか?初心者なので分かりません。

>そしたらCGIに画像ファイルが到着するとその画像を扱う処理をします、
>(その処理はCGI_Lite.pm等を介して画像ファイルの名前やら大きさやら保存場所やら・・・ね。)
CGI_Lite.pmって何ですか?
保存場所とは?マイドキュメントでいいんですか?

>>151
すみませんがもっと簡単に説明してもらえませんか?初心者なので・・・
>>142,>>144,>>148さんでもいいです。
0159nobodyさん03/04/20 03:44ID:???
>>158
そこまで書いたらネタ臭い。
0160nobodyさん03/04/20 03:47ID:???
ネタでも本当でもかまわんだろ。
そろそろ放置して寝るか。
0161nobodyさん03/04/20 04:25ID:???
>>158
最低限の「コーディング」が出来ない人は帰ってください。
初心者だから?それが何?
0162nobodyさん03/04/20 04:31ID:???
>>161
そんな事いってたら種がなくなるよ。
Perl初心者を大切にしようよ。
0163nobodyさん03/04/20 04:46ID:???
ネタだってば
放置プレーべ
0164山崎渉03/04/20 05:57ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0165nobodyさん03/04/20 06:47ID:???
CSV形式( ,で区切られた)のデータが1行に30項目ずつあり、複数行存在します。
詳細表示で10項目全部表示することとし、概略表示で行の始めから5項目ずつを表示したいと考えてます。
詳細表示と概略表示ではそれぞれ別のスクリプトで実行します。

この概略表示でデータを読み込む際、30項目全部を配列にセットするのではなく、始めから5項目ずつだけを配列にセットするほうが負荷がかからないのかな?って思ったんですが、始めから5項目ずつだけを配列にセットする方法が思いつきません。

正規表現かな?と思うのですが、それよりも前に進むことが出来ません。
何卒こんな私に良い知恵を御授けくださいませ。
それと、こういうことは負荷軽減に意味があるのかないのかもあわせてお答え願えれば幸いです。

ちなみに現状は以下で読み込んでます。
open(IN,"$Datafile")
while (<IN>){
chomp;
if(!$_){next;}
@data = split(/,/);
}
close(IN);
0166nobodyさん03/04/20 07:07ID:???
>>165
split の第3引数。
(@data, undef) = split /,/, $_, 6;

余計な分割をしない分 CPU 負荷は減るし、
配列に余計なデータを入れない分、使用メモリも減る。
行数によっては微々たる差だけど、こういう細かい
節約に気を使うのはいい事だよ。
016716503/04/20 07:07ID:???
ミスプリントです。

2行目:
誤 詳細表示で10項目
正 詳細表示で30項目


5,6行目:
誤 始めから5項目
正 各行の始めから5項目

寝てないから苦しい。
0168はしのえみ好きー03/04/20 07:08ID:???
>始めから5項目ずつだけを配列にセット
なら @data = (split(/,/))[0..4]; とか。
016916503/04/20 07:09ID:???
>>166
ありがとうございます!
さっそく使ってみます。
017016503/04/20 07:11ID:???
>>168
ありがとうございます!
さっそく使ってみます。 (コピペ
0171nobodyさん03/04/20 07:13ID:???
そう言えばLIMITってあったね(Perl本読み直そうかしら)
>>165
http://flex.ee.uec.ac.jp/texi/perl/perl_56.html
017216503/04/20 07:29ID:???
>>166>>168
出来ました!
検証する方法に悩んでました。
ありがとうございました。

>>171
うー
寝起きに読み直してみます。
0173nobodyさん03/04/20 12:07ID:???
>>168
目的は得られるがそれじゃ余計な負荷は変わらない
0174nobodyさん03/04/20 13:56ID:jyoFgOQ4
foreach $count (0..1000000) { $dat[$count]; }
と、
while($count < 1000000){ $dat[$count] = $count++; }
後者の方が目盛り消費量が倍ほど違うのはなぜ?
0175nobodyさん03/04/20 14:00ID:???
>>174
行われる処理が同じになるコードじゃないから
0176nobodyさん03/04/20 14:13ID:???
>>174
whileは毎回比較してるから遅いのは当然
0177nobodyさん03/04/20 14:51ID:???
>>174
ソースを見た段階で違いに気づけよ....
0178nobodyさん03/04/20 15:08ID:???
そんなコードの違いがわからないやつが言うメモリってどうやって調べたのだろう?
0179nobodyさん03/04/20 15:21ID:???
>178
タスクマネージャーとかじゃね?
0180nobodyさん03/04/20 18:39ID:???
Subroutine ABCDEFG redefined

ってどういうエラー?
0181nobodyさん03/04/20 18:41ID:???
>180
辞書(英和辞典)をひけばわかりそうなものだが。
0182nobodyさん03/04/20 19:40ID:???
>>180
re  defined
0183nobodyさん03/04/20 20:14ID:Nmb8JQyi
34 → 0000034
123 → 0000123
のように、
ある数字を、7桁の文字にするにはどうすればいいのでしょうか?
0184nobodyさん03/04/20 20:21ID:???
$answer= substr('0000000'.$n, -7);
0185nobodyさん03/04/20 20:22ID:???
>183
sprintf
0186nobodyさん03/04/20 20:22ID:???
>>183
sprintf
$s=sprintf("%07d",34);
0187nobodyさん03/04/20 21:38ID:???
>>184
あんた、プログラミング歴長いでしょ?
0188nobodyさん03/04/20 21:38ID:???
x_ 以外で始まり、 .cgi で終わる正規表現を教えてください。

x_acdef.cgi にはマッチしない
abcdef.cgi   にはマッチする
aacdef.csv   にはマッチしない
x_aaad.csv  にはマッチしない
xabcdef.cgi  にはマッチする
0189nobodyさん03/04/20 21:42ID:???
!/^x_/ and /\.cgi$/
0190金正日03/04/20 21:44ID:???

   ,rn                 
  r「l l h.                / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | 、. !j                | 
  ゝ .f         _      |  
  |  |       ,r'⌒  ⌒ヽ、.  │  http://www.freeweb2.kakiko.com/saitama/
  ,」  L_     f ,,r' ̄ ̄ヾ. ヽ. │   こんなのあったニダ
 ヾー‐' |     ゞ‐=H:=‐fー)r、)  | 
  |   じ、     ゙iー'・・ー' i.トソ   | 
  \    \.     l ; r==i; ,; |'  .人_ 
   \   ノリ^ー->==__,..-‐ヘ___
     \  ノ ハヽ  |_/oヽ__/     /\
      \  /    /        /  |.  
        y'    /o     O  ,l    |
0191nobodyさん03/04/20 21:49ID:???
>>189
やはり、andを使わないとだめなのか。
0192nobodyさん03/04/20 22:02ID:???
/^[^x_].*\.cgi$/
0193nobodyさん03/04/20 22:04ID:???
>>192

$a = 'xabcde.cgi';
if($a =~ /^[^x_].*\.cgi$/){
  print 'マッチしました';
}else{
  print 'だめ';
}

これで「だめ」と表示されたので、失敗。
0194184==18903/04/20 22:06ID:???
正規表現の勘所は、冗長になり過ぎないこと
0195nobodyさん03/04/20 22:07ID:???
/^[^x][^_].*\.cgi$/
0196nobodyさん03/04/20 22:09ID:???
$a = 'xabcde.cgi';
if($a =~ /^[^x][^_].*\.cgi$/){
  print 'マッチしました';
}else{
  print 'だめ';
}

だめと表示された。やっぱ無理なのか。
すまんかった。
0197192=19503/04/20 22:14ID:???
すいまそん。あてくし、初心者なんです。
調子に乗って答えてしまいますた。
ムズイネ・・・
0198nobodyさん03/04/20 22:47ID:???
^(?:x(?!_)|[^x]).*\.cgi$
0199nobodyさん03/04/20 23:00ID:???
189程度なら正規表現使う方が間違ってる
0200nobodyさん03/04/20 23:03ID:???
>>199
同意
あれで正規表現しか方法が思いつかないのは情けない
0201nobodyさん03/04/20 23:03ID:???
if (/^(?!x_).*\.cgi$/) {
0202nobodyさん03/04/20 23:04ID:???
漏れ、久々にPerl触ることになったんですけど
5.2以降、基本的な構造とか変わりまつたか?
ライブラリ周りとか、参照とかハッシュ(連想配列だっけか?)とか・・・
0203nobodyさん03/04/20 23:08ID:???
x_ 以外で始まる。
0204nobodyさん03/04/20 23:13ID:???
>>202
5.6、5.8あたりで動きがあったけど
020520203/04/20 23:21ID:???
>>204
多謝
化石化した脳が再利用出来ることを願って、その辺調べてみまつ
0206nobodyさん03/04/21 00:03ID:???
>>202
5.6なら基本的に大きく変わってないと思うよ
5.8はエンコードとか大きく変わってる
0207nobodyさん03/04/21 00:53ID:dkK8VA+7
Arseno ver2.1.4 のような辞書を借りたいのですが
何処に行けば無料レンタルできますか?
0208nobodyさん03/04/21 01:16ID:???
>>207
あの世
0209_03/04/21 01:37ID:???
( ´∀`)/< 先生!!こんなのを見つけました。
http://www.freeweb2.kakiko.com/tama/moe/hankaku06.html
http://freeweb2.kakiko.com/tama/moe/hankaku05.html
http://www.freeweb2.kakiko.com/tama/moe/hankaku04.html
http://freeweb2.kakiko.com/tama/moe/hankaku03.html
http://www.freeweb2.kakiko.com/tama/moe/hankaku08.html
http://freeweb2.kakiko.com/tama/moe/hankaku07.html
http://www.freeweb2.kakiko.com/tama/moe/hankaku01.html
http://freeweb2.kakiko.com/tama/moe/hankaku02.html
http://www.freeweb2.kakiko.com/tama/moe/hankaku10.html
http://freeweb2.kakiko.com/tama/moe/hankaku09.html
■ このスレッドは過去ログ倉庫に格納されています