トップページ⇒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
0446nobodyさん03/04/29 16:00ID:qzwrs6CU
$kurae="スカラー波";
print $kurae; # 暗殺
=cut
【電磁波?】パナウェーブって何よ?【白装束】@お祭りch
http://live5.2ch.net/test/read.cgi/festival/1051521132/l50
[タマちゃん]謎の白装束軍団に対抗して黒装束オフ2@突発OFF
http://life2.2ch.net/test/read.cgi/offevent/1051588043/l50
=cut
0447nobodyさん03/04/29 16:12ID:???
>>445
Perl5以上なら最新と言えないか?
0448nobodyさん03/04/29 16:15ID:???
素朴な疑問なんですが、ハッシュなどの添え字の部分
$abc{xxx} / $abc{'xxx'}
添え字が英数字だけの場合、「''」をつけない場合のデメリットってありますか?
今まではつけるようにしていたんですが、
特にデメリットがないなら、別に付けなくてもいいかなと・・・。
0449nobodyさん03/04/29 16:19ID:qzwrs6CU
>>447
Perl5.8未満の場合、JPerl使わないと正規表現に一部日本語が使えなかった筈
0450nobodyさん03/04/29 16:20ID:7QU29USV
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0451nobodyさん03/04/29 16:33ID:???
http://perldoc.jp/docs/perl/5.8.0/perldelta.pod
しっかり読もう。
0452nobodyさん03/04/29 17:10ID:jjc4BdFL
引数にメールアドレスを使う(http://hoge/hoge.cgi?mailaddress=メールアドレス てな感じ)
メーリングリストのCGIを使ってるのですが、
メールアドレスに + などが含まれるとうまくいきません(当たり前ですが)
対処法はあるでしょうか?
0453nobodyさん03/04/29 17:16ID:???
>>452
あいまいな記憶だが、+はデコード時に半角スペースにしてた気が・・・
0454nobodyさん03/04/29 17:22ID:???
+を %20 に変更すればその場をしのげるが、
どのみち、0-9 a-z A-Z _ - . * 以外の文字を使われると破錠する。
詳しくは、URLエンコードでググって。
0455独り言03/04/29 17:26ID:???
448を見て、ちょっと思ったのだが、
プログラミングPerl改訂版の4章(リファレンス)を読んでも全然意味がわからないよ。
C言語のポインタとか分かってる方が理解が早いのかな?(Cは全然知らんが)
リファレンスがスッキリ分かる書籍とかないかなぁ。

以前、オブジェクト指向ってどんなんかなぁと思って、
PerlとかJavaのそれ関連の本読んで全然意味が分からなかったことがあったが、
Rubyプログラミング入門って本を読んだらちょっと理解できたことがあったな。
それを読むまでは、
オブジェクト?はぁ?
メソッド?はぁ?
クラス?はぁ?
って感じだったんだが、その本では、自動販売機を例にしていて
すごく分かりやすかったなぁ。
クラスとは自販機の設計図です。
オブジェクトはそれをもとに作られた自販機そのものです。
メソッドは自販機のボタンです。と。
オブジェクトは機能とデータを持っていて、メソッドで機能を呼ぶと。
自販機だったらボタンを押す(メソッド)とジュース(データ)が出てくる(機能)と。。。
ちょっと感動したもんだ。

そんな感動するような、リファレンスの解説があったら読みたいもんだ。
0456nobodyさん03/04/29 22:34ID:???
クラスもオブジェクトだけどな。
自販機そのものはインスタンスだろ
0457nobodyさん03/04/30 00:12ID:???
>>455
リファレンスとは、Cのポインタ相当。
変数に入ってるデータのメモリアドレスを返す。
変数の中に、長文の文字列が入ってるとする。
それを、サブルーチンに引数として渡す場合、すべての長文の文字列をコピーする。
リファレンスで渡すと、文字列の先頭のアドレスだけを渡す。
文字列は、連続したアドレスに入ってるので、先頭のアドレスが分かれば、文字列すべてがわかる。

・・・わかるか?
045825003/04/30 01:20ID:???
$data = ayaya->new($hanya)->hoe->return;

ってかけるとカッコいいしとかいってみる・・・
0459nobodyさん03/04/30 03:06ID:???
かっこいいか?
0460nobodyさん03/04/30 03:07ID:???
あああ!しまった。よく考えなくてもネタだよな。
つい条件反射で・・・。>>459は忘れてくれ。
046145503/04/30 12:16ID:???
>>456
漏れの中ではインスタンスとオブジェクトは同じモノ扱いになってる(w
漏れ、まだ分かってない???(´・ω・`)
けどね、その本読んでから、Perlのblessの意味がちょこ〜っとだけ
わかった気がする。ネ申の息吹で無機物が有機物になって命を持つようなイメージ(w

>>457
ちょっとわかったような・・・
変数の中身をまるごとサブルーチンに渡すやり方はメモリ食いまくると?
巷で配布されてる糞CGIプログラムを理解するためのPerlの知識と
より洗練されたプログラムを書くための知識はケッコウ違いがあるなぁ。
0462nobodyさん03/04/30 12:58ID:???
>>461
Perl に限って言えばオブジェクトとインスタンスは同じモノ扱いでも
間違いではないよ。他の言語では別の物を指す事もあるけど。

Perl でのオブジェクト指向入門にはこれがいいかな。
http://perl.infoware.ne.jp/documents/perlboot.ja.html
0463nobodyさん03/04/30 20:25ID:hqsLMrDJ
すみません。どなたか教えて下さい。
区切り文字で区切られた行を、行ごと削除したいのですが...

$H,$I,$D
$H,$I,$D
$H,$I,$D

上記のようなデータファイルを1行ずつwhileで読み込んで
$Hの中に例えば”AA”という文字を含む場合、その1行全てを
削除したいのですが可能でしょうか?

while (<ANEWFILE>) {
s/(AA,.*,.*)//g;
s/BB,/CC,/g;

($H,$I,$D) = split(/,/);

$HOST = $H;
$HOST =~ tr/a-z/A-Z/;
print BNEWFILE "$HOST,$I,$D";

}

このようなscriptを作ったのですが、",,"という行が残ってしました。
区切り文字を\tなど他の文字に変えてみましたがだめでした。
区切り文字は削除できないのでしょうか?




0464nobodyさん03/04/30 20:27ID:hqsLMrDJ
あ、あげちゃった。まずかったかしら。
ごめんなさい。
0465bloom03/04/30 20:29ID:amWoVOiY
http://homepage.mac.com/ayaya16/
0466nobodyさん03/04/30 20:59ID:???
>>463
> print BNEWFILE "$HOST,$I,$D";
> ",,"という行が残ってしました

自分で print してるんだから当然。

$H の中に含まれて欲しくないのなら何故、
一行を ($H,$I,$D) にバラしてから $H を調べる、
という手順にしないんだ?

後はこれ読んでもう一度考えてみな。
http://www.kt.rim.or.jp/%7ekbk/perl5.005/perlsyn.html#Loop_Control
0467nobodyさん03/04/30 22:22ID:ryfRd/ki
行き詰まってしまったので、どなたかヘルプお願いします。
$datにはIPを含むテキストデータが入っています。
(BBSのログファイルみたいな物と考えてください)
IPをHOSTに変換する物を作って見ました。
IPが5つくらい含まれていて、$datのサイズが1Kバイト程度ならしっかり動きます。
しかしそれ以上だと処理が終了しなくなってしまいます。
どうしたらいいかアドバイスお願いします。

while ($dat =~ m/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/i) {
$ip="$1.$2.$3.$4";
$host = &IP2Host($ip);
$dat =~ s/$ip/$host/g;
}

IP2Host部分にも問題があるんですかね…?
0468動画直リン03/04/30 22:29ID:amWoVOiY
http://homepage.mac.com/hitomi18/
0469nobodyさん03/04/30 22:29ID:???
>467
エラーログは?
047046703/04/30 22:35ID:???
早速…本当に助かります。

エラーログが出ません(汗
なんか無限ループしているような感じです。
なので結構たちが悪い…
047146703/04/30 22:40ID:???
あああああああああああああ。
済みません。事故解決してしまいました(汗
一生懸命GETで送ってました。
サイズの限界超えてました。
POSTにしたらOKでした。

何こんなので2時間迷っていたんだろう…
>>469さん
本当に申し訳ないです。
0472nobodyさん03/05/01 00:02ID:???
>466さん

逝ってきます。
0473nobodyさん03/05/01 12:23ID:???
ものすごく初心者な質問でごめんなさい。
テーブルを使って掛け算の九九を表示させようとしています。
for($kuku1 = 1; $kuku1<=9 ; $kuku1 = $kuku1 + 1)
{
for($kuku2 = 1; $kuku2<=9 ; $kuku2++)
{
$kotae = $kuku1 * $kuku2;
print "$kuku1*$kuku2=$kotae\n";
}
}
これだと動くのですが、テーブルにしようと思って、最初のforと
次のforの間にif($kuku1 = 1) {print "テーブルタグ"}(←やや略)や
最後の}と}の間にif($kuku1 = 9) {print "テーブルタグ"}を入れると
途端に中のforが実行されなくなってしまいます。持っている本には
そこまで解説がなく、検索してもわかりませんでした。入れ子の時は
途中に挟んだらいけないのでしょうか。
0474nobodyさん03/05/01 12:30ID:???
>>473
= は代入。数値比較は == 。
047547303/05/01 12:32ID:???
あっ! そうか! ありがとうございます
047647303/05/01 12:37ID:???
動きますた!m(_ _)m
0477T-T03/05/01 14:13ID:???
初めまして、
3時間検索しまくったんですが解決できませんでした、助けて下さい、

�@なぜか関数同士の、しかも割算が動きません
-------↓やってみた命令文--------
$temp = $test1;
$test1 = $temp / $test2;  
---------------------------------
#結果:エラーも出ずにそこで処理が止まります。
    /や%を使った文を消すとCGIは最後まで正常に動きます・・。
    +,-,*は動作しました、/,%だけ動きません、


�Aifで複数の文章を連続で書き直す命令作ってみたんですが・・
-------↓やってみた命令文--------
if ($syurui1 eq 'デジカメ') { $syurui1 = 'dezikame';}
elsif ($syurui1 eq 'ネット') { $syurui1 = 'net';}
elsif ($syurui1 eq 'スキャナ') { $syurui1 = 'scaner';}
---------------------------------
#結果:他の項目まで全部 dezikame になってしまいました、
    データ整理したいけど知識なかったので とあるBBSを改造して
 -------------------------------------------------------------
 open(IL,"$logfile") || &error("Open Error : $logfile");
 while (<IL>) {($〜〜,$〜〜,$〜〜) = split(/<>/);
 -------------------------------------------------------------
こんな感じにlogファイルから関数にうつしています。


JavaScriptでファイル整頓してた性で変な先入観あるのかもしれません、
誰か もしかしたら 程度でもいいのでアドバイスをー、、
0478nobodyさん03/05/01 14:37ID:???
(1)$test1、$test2にはどんなデータが入ってるの?
関数じゃなくてスカラーデータね。

(2)やってみたという命令文自体に問題はない。
他の項目まで全部 dezikame になってしまうってことは、
そこ以外での処理がまずいんでしょ。
ログファイルを読み込むとこから、処理をして、ログファイルに
書き込むとこまでのソース書いてみて
0479nobodyさん03/05/01 14:45ID:???
>>476
ちなみに、代入式は代入した値を返すのでif($i=1)とやれば真になるし、if($i=0)とやれば偽になる。
こういう書き方をする場合もあるので覚えておいて損はないかも。もちろん定数を入れては意味がないけど、関数の戻り値とかをね。

>>477
> なぜか関数同士の、しかも割算が動きません
変数同士に見えるんだけど。$test2が0なんじゃないの?
0480nobodyさん03/05/01 14:48ID:???
コーディングスタイルに関しての質問なんですが、
みんなprint関数だけは括弧をつけずに呼び出しているのはなぜですか?
教科書(?)がそう書かれていることが多いから?
048148003/05/01 14:51ID:???
スレ違いだったかもしれません。すみませんでした。
0482nobodyさん03/05/01 15:01ID:???
>>480
printf
048348003/05/01 15:02ID:???
>>482
printfと区別するためということですか?
0484bloom03/05/01 15:10ID:YcBKOzoM
http://homepage.mac.com/ayaya16/
0485nobodyさん03/05/01 16:16ID:l9KEH29r
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0486T-T03/05/01 17:02ID:???
477です、
�@の件
>478さん
>(1)$test1、$test2にはどんなデータが入ってるの?
>関数じゃなくてスカラーデータね。
$が付いてたらスカラー関数・・ではないんですね;

>479さん、
>変数同士に見えるんだけど。$test2が0なんじゃないの?
ちゃんと入ってる!・・とおもったら、、
BBSのを使った性でログの1行目のデータがからっぽな性だったみたいです、、
0以前に""(ナシ)な感じだったのかも、、
おかげさまで問題点気付けて正常動作しましたぁ〜〜、、/(_ _ / ペコリ

ログ入力をメモ帳でやってて、
見易くするためにスペース入れてたのも
何か影響あったみたいです、(ワードパッドで一括削除しました、)
数字じゃなく文字列扱いになってたのかも、(でも足算、掛算はできたし・・?)
0487T-T (ありがとうー、03/05/01 17:03ID:???
477です、(2
�Aの件
>478さん
>(2)やってみたという命令文自体に問題はない。
>他の項目まで全部 dezikame になってしまうってことは、
>そこ以外での処理がまずいんでしょ。
>ログファイルを読み込むとこから、処理をして、ログファイルに
>書き込むとこまでのソース書いてみて
syntax errorとか1度出て文法がおかしいんだと必死になってたんですが
問題は無いと助言いただけたので、他の処理を少し書き直してみたら
全部変換されてしまうのが止まりました、、 T―T

でもifに反応しないなと思ったらこっちも列揃えて見易くなるように
ログ打ち込みで半角スペース使いまくってた性があったみたいで
スペース消したら正常動作しました・・! ヽT―Tノ

読み込んだ時に縦列合わせに入れたスペースの存在を忘れた事と
何も入って無いものは掛,足,引はできるけど割算系はできないと勉強になりました、、


助言いただけたおかげで気付けて空回りを終れました〜、、
ありがとうございました > <ノ (またすぐにエラーでて来そうケド;
0488nobodyさん03/05/01 19:59ID:???
$_ が 「から」 もしくは、半角スペース、全角スペース、タブのみの組み合わせで構成されている時、「処理1」を行うというif文を作ってください。
半角スペース、全角スペース、タブがあるならばというのならできるのですが、のみというのに苦労してます。
よろぴくおながいします。
0489nobodyさん03/05/01 20:04ID:???
>>488
「から」って何? そのままの日本語の通り

   から

っていう4バイトの文字列のことでいいの?
0490nobodyさん03/05/01 20:13ID:???
何もないっていう意味
0491nobodyさん03/05/01 20:25ID:???
本当の意味のぬるぽ?
0492nobodyさん03/05/01 20:50ID:???
>>488
>半角スペース、全角スペース、タブがあるならばというのならできるのですが
まずそれを書いてみろ。話はそれからだ。
0493nobodyさん03/05/01 21:30ID:???
>488
宿題くらい自分でやろうな。
049447703/05/01 22:52ID:IITpZ0lX
質問です、、
自作ログを配列に直してCGIに取りこんだんですが、
----↓こんな感じに------------------------------
@gyou01 = ('photo','pic','scan' 続く⇒);
@gyou02 = ('ph0001','pic001a','scan001');
@gyou03 = ('ph0002','pic001b','scan002a');
@gyou04 = ('ph0003','pic002','scan002b');
(50行くらい続く)
------------------------------------------------
種類別にリストに書き出そうと思ってforを使ったんですが
-----------------------------
for ($i = 1; $i <=51; $i++) {
print "$gyou$i[$i]\n";
-----------------------------
配列の部分の指定に関数使ったんですが動かず・・、(JavaScriptでは出来たのに、、
あと、
---------------------------
for ($i = 1; $i <=51; $i++){
j = i + 1;
if ($gyou$i[5] < $gyou$j[5]){
@temp = @gyou$i;
@gyou$i = @gyou$j;
@gyou$j = @temp;
}
---------------------------
こんな感じで配列の入れ替え整頓もできる状態にしたくて
あまり激しく変えたくないのですけれど・・・
無理でしょうか?、
よろしくおねがいします、、
0495nobodyさん03/05/02 00:08ID:???
>>480
俺は括弧は極力省く派だから「みんな」には入らんようだが、
print は直後にファイルハンドルが来る事が多いから、
それらと統一感を出す為じゃないか?

>>494
二次元配列にすれ。
@gyou = (
['photo','pic','scan'],
['ph0001','pic001a','scan001'],
['ph0002','pic001b','scan002a'],
['ph0003','pic002','scan002b'],
);

# photo, ph0001, ph0002...
foreach (@gyou) { print $_->[0] }

# 入れ替えはスライスで。
@gyou[2,1] = @gyou[1,2];

あと「変数」を「関数」と覚え間違えてるのは直そうな。
0496nobodyさん03/05/02 00:54ID:???
>480

$rtn = print "hello,world"; #rtn 戻り値

私の持ってる超ド級初心者用の本の説明・・・

関数printはまず失敗しないから、使わないだけ。らすぃ・・
0497nobodyさん03/05/02 00:58ID:???
質問です。

変数$hogeの文字列のうち、
文字列"FOO"と一致する内容を、変数$bに置換するにはどうすればいいですか?
0498nobodyさん03/05/02 01:03ID:???
>497
正規表現。
あとは検索すればいくらでも出てくる。
049947703/05/02 01:33ID:???
494です、
495様ありがとうございます> <ノ
C++かじった時出てたけど色んなとこで紹介さえなかったからCGIに2次元は無いと思ってました、
でも入れ替えも簡単で嬉しくて嬉しくて> <、

でも foreach (@gyou) { print $_->[0] } の機能が試したけど不明、、
$_->はどんな意味があるのでしょうか?

>あと「変数」を「関数」と覚え間違えてるのは直そうな。
はい、、
まだしばらく間違えそうな気がするけど気を付けます、

なにはともあれ、本当に助かります ありがとうございます〜、 ノ(_ _ ノ
0500nobodyさん03/05/02 01:41ID:???
>>499
>CGIに2次元は無いと思ってました、

PerlとCGIを混同してないか?
Java/JavaScriptと同じで、時と場合によっては叩かれるから注意な。
0501nobodyさん03/05/02 03:08ID:???
$hoge = '/home/user/public_html/hoge.jpg';
を
$hoge = '/home/user/public_html;
にする一番スマートなやり方ってどんなのがありますか?
0502nobodyさん03/05/02 03:25ID:???
>>501
「する」ってどういう意味で言ってるのか??

そのまま下の代入をすればできるでしょ。
置き換えでもいいし。
0503nobodyさん03/05/02 03:37ID:???
>>502
そうか・・・
サンクス
0504nobodyさん03/05/02 03:43ID:???
>>503
何をしたいのかがよくわからないな?
0505nobodyさん03/05/02 04:39ID:???
>>504
スマソ とんちんかんなこと言ってた
0506nobodyさん03/05/02 05:29ID:???
本来の意味での二次元配列のない言語はCでは?直行的だし
0507nobodyさん03/05/02 07:39ID:???
>>506
(´-`).。oO(本来の意味の二次元配列ってなんだろ・・・?)
0508nobodyさん03/05/02 07:46ID:???
>>499
# [ ] で無名配列のリファレンスを生成
@gyou = (
['photo','pic','scan'],
['ph0001','pic001a','scan001'],
['ph0002','pic001b','scan002a'],
);

# 同じ事を別のやり方で。\ でリファレンスを得る
@gyou1 = ('photo','pic','scan');
@gyou2 = ('ph0001','pic001a','scan001');
@gyou3 = ('ph0002','pic001b','scan002a');
@gyou = (\@gyou1, \@gyou2, \@gyou3);

foreach $line (@gyou) {
# リファレンスをそのまま見ると、型とアドレスが返される
print "$line - ";
# デリファレンスする事で元のデータにアクセスできる
print "(@{$line}) - ";
# リストの要素を個別に見る
print "${$line}[1] - ";
# デリファレンスに矢印演算子を使う
print "$line->[0]\n";
}

あとは上に出したような単語で調べてくれ。
0509nobodyさん03/05/02 08:40ID:???
Cの[][]こそが本来の意味の二次元配列なのだが。
PerlとかJavaとかは配列の配列と言う。
0510nobodyさん03/05/02 11:20ID:???
Perlのは、多次元配列とは少し違うみたいな事
解説書とかに書いてあるね。
私はPerlとPHPしかやった事が無いので
本当の2次元配列が、どういうものなのか分からない(´〜`)
Cだとどういう風に書くの?ってスレ違いか…。
0511nobodyさん03/05/02 11:48ID:???
うpろだで入力フォームの確認を行いたいんですが
fileの初期値が指定できないことがネックになってます
結局は確認の時点で保存、その後、本書き込みの時点でコピー
ということでファイナルアンサーでしょうか

>>510
C・・・きれいな長方形
Perl・・・棒グラフ
漏れの中ではこんなイメージ
0512nobodyさん03/05/02 12:13ID:???
>>511
Perlの話じゃねえだろが。

そうだな。確認の時に一時ファイルに保存して、
本書き込みでリネームするなりコピーするなりかな。
一時ファイルの削除を忘れるなよー。
0513nobodyさん03/05/02 12:23ID:???
>>512
どもです。まぁ、Perlで作ってるんでw
じゃぁ、やぱーり一時ファイル作成→コピーかぁ
ただ、これをやると確認アタックかけられると一時ファイルが膨大になる罠
本書き込みがなくとも10分程度でファイルを自動的に消す仕様にしたとして
10分以内にアホほどうpられるとどうしようかと
投稿制限と併用が妥当ですか?
051425003/05/02 12:28ID:???
>>510
C 綺麗な配列はいいんじゃない?
Perl はどっちかというとツリー構造
0515nobodyさん03/05/02 12:32ID:???
>>513
fileの中身をhiddenで送り返してやれ。(藁
0516nobodyさん03/05/02 13:07ID:???
っていうか スレ違い
0517nobodyさん03/05/02 18:25ID:???
Cの場合は二次元配列というか二重配列って感じ。テーブルじゃないし。
0518nobodyさん03/05/02 19:53ID:???
 二 重 配 列 ワロタ
0519nobodyさん03/05/02 21:10ID:???
>>518
なんかおかしい?
配列を要素に持つ配列だからイメージとしてそんな感じだと言ったんだけど。
もちろんそんな呼び方はしていないぞ。
0520nobodyさん03/05/02 21:24ID:???
>>519
>Cの場合は二次元配列というか二重配列って感じ。
何か勘違いしてないか?
君の言う二重配列はint **hogeだろう?
で、二次元配列はint hoge[][] だろ。
”というか”はおかしい。
0521nobodyさん03/05/02 21:30ID:???
スレ違いは帰れ。
はい、次の質問。




いらっしゃーい、Perlのコーディングで困ってる人のスレです。

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

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

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0522nobodyさん03/05/02 21:33ID:???
>>520
それは二重ポインタだろうが。
Cでの二次元配列はメモリー上にまっすぐ並んでいるんだよ。おまえこそ分かっているのか?

>>521
スマソ もうやめる。
052352203/05/02 21:35ID:???
まっすぐ並んでいるんじゃ二次元と呼ぶにはふさわしくないだろと。

これで本当に最後
0524nobodyさん03/05/02 22:26ID:???
私は緑茶よりほうじ茶が好きだ
0525nobodyさん03/05/02 23:14ID:???
>>522
>それは二重ポインタだろうが。
>>519に対してレスしてるんだよ?スレを嫁。(そして俺はスレタイを嫁。

>メモリー上にまっすぐ
なんじゃそりゃ。メモリの配置方法は関係ないだろ?
そんなこと言ったらそもそも「配列」なんて意味を持たない。
配列の各要素について等サイズのメモリが割り当てられてるのが多次元配列。
>>519の言ってる「二重配列」は配列の各要素でサイズが違うもの。お分かり?
0526nobodyさん03/05/03 00:31ID:???
511だが仕様が固まったんで一応、書き込んどくyo
確認時にtempディレクトリを作って、そこに画像を保存
画像の名前はIPからcryptしたユニークIDにすることで同じIPからの
投稿は上書き処理にすることで無効化する

一時保存の前にtempディレクトリをstatして10分以上更新がなければ
tempディレクトリごと消去することで仮に確認だけを行って一時ファイルを無作為に増やすような
嵐行為は10分以上時間が空けば無駄になる仕組み
一時ファイルは本書き込みの際に移動&リネームで本来の画像名を与える
もっといい案があればくれろ。

てかこの板ってまともな質問できるスレ少ないな
052725003/05/03 00:57ID:???
>>526cryptだと重複すること有るな・・・
画像の名前からMD5をとって、md5のファイル名の一時ファイルを作成。
それと同時に、md5ファイル名対応ファイルを作成。
んで本書きこみは対応表から本ファイル名にリネーム保存、んでリストから対応データを削除つーのはいかが?
0528nobodyさん03/05/03 01:13ID:???
>>527
う〜ん、10分程度の時間ならそれほど重複することもないかなとか
というか、問題は確認時に保存した一時ファイルの処理だったり
本書き込みの際に処理をさせるとなると確認だけで本書き込みに移行されない場合は
そのファイルが永遠に残ってしまうので

確認時に保存したファイルをどう削除するかスリープさせて一定時間で消去ってのも・・・
052925003/05/03 01:16ID:???
>>527
それよりか、ファイルのバイナリデータ自体にMD5をかければ連投さけれるな・・・
例えば
12a6de24c6aec73c5c23da03c135a3c0.png
12a6de24c6aec73c5c23da03c135a3c0.txt

つーのをつくって、12a6de24c6aec73c5c23da03c135a3c0.txt
ファイル名を記述しとく。
ayaya.png
とか・・・
んで、statなりつかってリネーム、txtファイルは削除とかどうよ・・・
053047703/05/03 01:43ID:???
>508さん
ありがとうございます^^
配列を配列に入れられる物なんですね〜、、
下半分はまだ駆け出しにはよくわかんないのでメモして調べて見ます、


あと、質問です、、
-----------------------------------------
@gyou([〜間〜'day'],
[〜間〜'20030202'],
[〜間〜'20021231'],
[〜間〜'20030101'],
);
for ($i = 0; $i <= 51; $i++) {
$j += $i;
if ($head[$i][7] < $head[$j][7]){
@temp1 = @head[$i];
@head[$i] = @head[$j];
@head[$j] = @temp1;
}
}
------------------------------------------
日付順に並べかえしようと思ったんですが、1部しか並べ変わりません、、
(日付をわざわざ打つのも自動にできればいいけど無理でしょうか?、
それはそれで、
入替えってすぐ頭がこんがらがってしまって上手く構想さえ練れません、、
52列は有るんですが、変数i+1 i+2 i+3 〜〜 と52個取得して
forを51度も置いて並べ替えしなきゃだめでしょうか?、
前教えてもらった$〜[○,○]での変換がまだ上手く使えなくって・・T T
できれば助言ください〜、、
053125003/05/03 02:15ID:???
>>530
何故に@gyou なのに@headをソートしてるにょ?
それはおいといて、もっと簡単に

@gyou([〜間〜'day'],
[〜間〜'20030202'],
[〜間〜'20021231'],
[〜間〜'20030101'],
);

@gyou = @gyou[sort{ $gyou[$a]->[7] <=> $gyou[$b]->[7]} 0 .. $#gyou ];

これでいけるよ。
0532nobodyさん03/05/03 02:19ID:???
>>530
sortを使うといいよん。
053347703/05/03 12:42ID:???
>250さん
実はややこしい配列使ってるからちょっと内容変えてたらミスを TT
内容変えてた性と構文と専門用語よくわかってないせいでまったく動かずパニック、
ちょっと別の手段さぐってみます T T
ごめんなさい、、
053447703/05/03 12:58ID:???
あ・・動いた!;
Sortのこと調べてたら$aと$bはSort用のなんですね、、
forで$aつかって$b += $aなんて作ってたから動かなかったみたいです、
繰返したりしなくても単品で全て入れかえるんですね、、
C++少しかじったのが仇になった気分です、

中身を宣言しなくてもいい変数が有ると覚えておきます、(_ _、
ありがとうございました〜、
0535nobodyさん03/05/03 13:07ID:???
ちょっと質問なんだけど
perlでクッキー使わずにセッション管理って出来るのかな?
URLでセッションIDとかを引き継ぐのもアレだしどうしたもんかと
>1:自分はこう言う事がしたい
適当なページでログインした後はログイン状態の維持

スレ違いだったらスマソ
0536動画直リン03/05/03 13:10ID:TBhkUsV+
http://homepage.mac.com/hitomi18/
053725003/05/03 13:34ID:???
>>535
formのhiddenで回すとか・・・
cookieはブラウザからの確認が来るから自分的には使わず
053853503/05/03 14:06ID:???
レスthx

やっぱそれぐらいしか無いのね・・・
出来ればhtmlはそのままでSSIぐらいで片付く方法探してたんだけど

リンク元・ホスト・IPなんかで絞る方法ってのも無理だろうなぁ・・・
0539nobodyさん03/05/03 21:04ID:???
http://pc2.2ch.net/test/r.i/php/1051456859/i
こっちかなーっと迷ったのですが、とりあえずここで聞いてみます。
perlで書かれてる掲示板スクリプトで、書いて読む(読み込む記事数を指定できる)だけの簡単なやつをだれか知りませんか?探したんですが、どれも何か実用できるような機能がついていたので...
勉強に使います。
誰か教えてください、お願いしますm(_ _)m
0540nobodyさん03/05/03 21:10ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。
0541動画直リン03/05/03 21:10ID:TBhkUsV+
http://homepage.mac.com/hitomi18/
0542途方にくれています03/05/03 22:51ID:40KqJ28q
Socketで他のサイトのHTMLを読みにいってます。
cgiファイルに書いてたときは問題なく動いてたのですが
関数をplファイルに移し変えたとたん↓の行が動かなくなりました。
select(SOCKET); $|=1; select(stdout);
なんもエラーメッセージ出てないが、ここで処理が中断されてしまう。
なぜ?
0543nobodyさん03/05/03 22:58ID:???
>>542
消えろ厨房
0544nobodyさん03/05/03 23:11ID:???
Perlの入門書でお勧めありますか?
054554203/05/03 23:19ID:40KqJ28q
おしえてくれよ〜。
■ このスレッドは過去ログ倉庫に格納されています