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

Perlコーディング初心者質問スレ Part 56

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/09/16(日) 19:49:43ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

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

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

お勧めサイトは >2 以降

前スレ ttp://pc11.2ch.net/test/read.cgi/php/1180492441/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0686nobodyさん2008/01/07(月) 21:15:48ID:XSyaqzwg
>>685
おぉ いきました!
詳しい原因はよくわからないですが、ありがとうございました。
0687nobodyさん2008/01/07(月) 21:22:49ID:???
ためしにPerlじゃなくてLispで
(* 200 0.29)
ってしてみたら57.99999999999999だってさ。機械の計算って難しいことがあるな
0688nobodyさん2008/01/07(月) 22:41:02ID:???
誤差については、がっこで習うものだと思ってたけど、そうでもない?
0689nobodyさん2008/01/07(月) 22:44:33ID:???
俺は習ったけど、もしかしたら教えてないところも少なくないかもしれん
0690nobodyさん2008/01/07(月) 23:59:36ID:???
情報工学を扱う授業でもなきゃ教わらないんじゃね?
少なくとも俺は浮動小数点の丸め誤差については習ったことない。

あと高校の世界史も。
0691nobodyさん2008/01/08(火) 00:07:25ID:???
>>683
>>681じゃないがなんかの辞書に載ってた気がする
ソースはない
0692nobodyさん2008/01/08(火) 00:31:05ID:k+nta2fc
丸め誤差の知識はありますけど、
コンピュータの中で200*0.29ってどうやって計算してるか分からない
そもそも結果が57.9999・・・・になると言われても、どういう計算をしているのか
さっぱりw
0693nobodyさん2008/01/08(火) 00:34:28ID:???
しかも
(* 20 0.29)
これは5.8って表示されるから困るw
0694nobodyさん2008/01/08(火) 00:38:53ID:???
自前のショッピングカートの消費税を int($sum * 0.05) みたいに計算してるんだけど、大丈夫だろうか…
0695nobodyさん2008/01/08(火) 07:14:24ID:???
>>694
>>685にすれば大丈夫かと
0696nobodyさん2008/01/08(火) 08:15:35ID:???
俺は一番最初の質問者ではないが、浮動小数点の丸め誤差については、
wikipediaにも載ってたね。
問題の解決には、 use bignum; つかえばいいわけで、それでいい
のは分かるけれど、それとは別の話で、小数を100倍して整数で演算をして、
あとで100で割ったりする方法だったらちゃんとでるから
use bignum; しなくてもいいんだよね?
0697nobodyさん2008/01/08(火) 22:01:08ID:???
>>696
0.29が有効数字2桁だとあらかじめ分かっているなら100倍すればいいけどなあ。
既知でないときにはuse bignum;じゃないか?
0698nobodyさん2008/01/09(水) 00:10:32ID:???
>>697
レスサンクス。
いや、意味の無い部分の考えかなと思ったんだけど、
そっちの方がメモリが少なくて済み、処理が早くなったりするのかなとか
思ったのよね。ま、すごく小さな世界をいっているんだろうけれど。
0699nobodyさん2008/01/09(水) 01:01:57ID:???
うーん、俺も難しいことはわからんけど、
俺は細かい実行時間を気にしてミスをするより、コードの可読性を優先したいな。と思った。
大量のデータを扱う人から見ればふざけた態度かもしれないけどね。
0700nobodyさん2008/01/09(水) 02:01:45ID:???
LL的には人間にとっての最適化(コードの可読性)のほうが重要だからそれでいいと思うな
0701nobodyさん2008/01/09(水) 03:08:01ID:480klIK2
リーダビリティ重要。(高橋メソッド風に)
0702nobodyさん2008/01/10(木) 23:51:33ID:???
IPを10進数に変換したものと、
サブネットマスク形式のリストをマッチングさせたいんですが、
どんなループさせればいいですかね?

#判定ルーチン内
foreach (@list) {
 my ($min,$max) = subnetMinMax($_);
 return ($ip >= $min and $ip <= $max) ? 1 : 0;
}
としてるんですが、grep等を使ったほうが良いんでしょうか?
ループ内でサブルーチン呼ぶのがちょっと気になります。
0703nobodyさん2008/01/11(金) 00:04:09ID:???
訂正orz

x: return ($ip >= $min and $ip <= $max) ? 1 : 0;
o: return 1 if($ip >= $min and $ip <= $max);
0704nobodyさん2008/01/11(金) 11:44:26ID:???
@listの中にマッチするものが複数存在する可能性があって
何にマッチしたか全て取りたいならgrepだけど
有るか無いかだけでいいならループ回して見つけ次第結果返していいんじゃない?
0705nobodyさん2008/01/11(金) 16:30:20ID:???
return $ip >= $min and $ip <= $max;
0706nobodyさん2008/01/11(金) 20:31:41ID:???
>>704
なるほど。このままにしますありがとうございました。

>>705
そっか、そうですよね。
聞いてみて良かったです。
0707nobodyさん2008/01/12(土) 13:10:11ID:???
「うんこ」を含む行の最後に「出る」と追加することってできますか?
「うんこ」の前後は英数字・日本語交じりで文字数は不定です。
$_ =~ s/(うんこ)/$1でる/;
だと、うんこ〜出るの間の文字が文末にきてしまいます。
文末指定は$みたいなので
$_ =~ s/(うんこ)/$1でる$/;
としてperlを実行させると、エラーなのか、プログラムが終わりません。
0708nobodyさん2008/01/12(土) 13:13:01ID:???
if ( $うんこ =~ /うんこ/ ) {
 $うんこ .= ’でる’
0709nobodyさん2008/01/12(土) 13:38:43ID:???
「うんこを含む行」「改行」 ⇒ 「うんこを含む行」「でる」「改行」

if (index($_, 'うんこ') >= 0){ $_=~ s/$/でる/; }
07107072008/01/12(土) 13:54:47ID:???
>>708
全角を半角にしてやってみたりしましたが、エラーでした。

>>709
できました。ありがとうございます。
ただ、>=0の意味が分かりません。
改行は\nじゃないんですか?
0711nobodyさん2008/01/12(土) 18:35:26ID:???
なにこのうんこスレ
0712nobodyさん2008/01/12(土) 19:18:44ID:???
>>710
index
07137072008/01/12(土) 22:50:20ID:???
>>712
すみません、わかりました。ありがとうございました。
0714nobodyさん2008/01/13(日) 13:16:41ID:rzzkvCmj
怠惰が美徳だの
エロエロ言語だの
言うけどさ
俺が習ってきた主な4つの言語のなかじゃ
間違いなく一番習得が苦しかった

つまり、学習コストは高い
Perlより習得が難しい言語ってあるの?

私見では達人レベルを目指すならC++が全言語のなかで一番習得困難
そこそこのプロレベルを目指すならPerlが一番困難(C++はそこそこのプロならまだ簡単)
0715nobodyさん2008/01/13(日) 13:17:19ID:rzzkvCmj
スレ間違えた( ゚д゚ )
0716nobodyさん2008/01/13(日) 21:52:12ID:???
配布用のスクリプトを書く予定なんですが、
変数名のつけ方で悩んでいます。
たとえば、
my $title;
my $script_content_title;
my $ScriptContentTitle;
sub param{}
sub parse_URL_encoded_string{}
sub ParseURLEncodedString{}
等、色々書き方ありますが
短い方が良いのか、わかりやすい名前が良いのか、
又、大文字、小文字を混ぜて使うべきか、覚えやすい名前にするべきか、
意見ください。
賛否両論あると思いますが、極力万人受けするものを選びたいです。

長文すみません
0717nobodyさん2008/01/13(日) 21:53:50ID:???
配布スクリプトの中身の変数名なんて誰も見ねぇよ
0718nobodyさん2008/01/13(日) 21:56:06ID:???
>>717
学習、改造用として配布したいんです。
0719nobodyさん2008/01/13(日) 22:43:42ID:???
perldoc perlstyle
0720nobodyさん2008/01/13(日) 23:03:26ID:???
変数や関数の名前の付け方は、どんなプログラムを書こうとしている
かというところもあるからな。
例えば、関数名で html_ をつけるとそうでないものとの区別がついて
分かりやすくなるけれど、全部の関数に html_ がついてたら
逆に無意味に長いだけとなる。
ここでアドバイスが欲しかったら、その書こうとしているプログラムや
ソースをもう少し具体的にだすとかしないと話は進まないと思う。
07217162008/01/13(日) 23:22:17ID:???
>>719
ありがとうございます。全部読みました。

基本的にはアンダースコアを使うべきだそうです。
スコープによって使い分けるのが良いみたいですね。
$Global_Data #グローバル
$tmp    #局所
$LOCK_KIND #定数

>>720
プログラムの種類によって書き方が変わる、変えられるのがperlの利点かもしれませんね。
>全部の関数にhtml_
そういうのはパッケージにまとめればOKですかね。

おかげ様で書き方が頭に浮かんできました。ありがとうございました。
0722nobodyさん2008/01/14(月) 02:09:11ID:???
Perlプログラマは"不精"なので面倒なタイピングはしません。
でもPerlプログラマは"傲慢"なので他人のコーディングスタイルを気にしません。
こんなイメージ。
0723nobodyさん2008/01/14(月) 02:26:48ID:???
怠惰と傲慢と短気だっけなラリーの三原則。

ネーミング重要。(高橋メソッド風に)

でも職人芸的なところあるよねネーミングセンスって。
なかなかそこは難しい。
0724nobodyさん2008/01/14(月) 04:10:53ID:???
果たして自閉症の描くイメージとは
0725nobodyさん2008/01/14(月) 04:15:16ID:???
>>716
もう解決したみたいだけど、Perlベストプラクティスもおすすめ
ダミアン先生の盲信はいけないけど、かなりためになるYo
0726nobodyさん2008/01/14(月) 17:41:01ID:???
ダミアン先生はPerl界屈指のハッカーだが、著作物での記述にクセが全くないわけではないからね。

一般論としては、上を目指すならいろんなハッカーのコードや文章にたくさん触れることが必要。
これがなかなか大変だし難しい。
そのためにはネット上のコミュニティーやリアルのイベントにこまめに参加したり
ブログを定期的にチェックし続けないといけないから。
そういうことをしてない自称Perl使いが結構俺の周りにはいて、
そういう奴らは我流のあまりエレガントじゃないスタイルから抜け出せないでいる。
0727nobodyさん2008/01/14(月) 18:57:12ID:4AKnbZN2
ファイルに入っている文字を出力するつもりなのですが、
メタ字が混ざっていることもあり、ちゃんと出力できません。
あらかじめファイルの中のメタ字に\を振って置くとしても、かなりの手間になりそうですし、
何か効率の良いメタ字対策はないでしょうか?
07287272008/01/14(月) 19:02:23ID:4AKnbZN2
すみません。微妙に文書が狂っていました。
ファイルに入っている文字からの出力の際の
文字化けする文字の対策をお願いします。
07297162008/01/14(月) 20:00:43ID:???
>>725-726
オライリーファンの俺には最高の本かもです。
>>727-728
余計な事してるからじゃないですかね?
quotemetaなんてのはどうですか?
文字コードなんかも書くと返事もらえるかも。




0730nobodyさん2008/01/14(月) 20:08:53ID:???
>>727
情報不足です。
「ファイルに入っている文字」…どんな文字? 文字コードは何?
「出力するつもり」…どこに出力するの?
「メタ字」…具体的にどの文字ですか?
「ちゃんと出力できません」…具体的にどのように出力できないのですか?

ありがちなのは、ファイルの中と、コンソールの文字コードの設定が異なっていて、文字化けしたように見えるとか。
メタ文字をいったん解釈してしまっているとか。
ヌル文字とかタブとか垂直タブとかグループセパレータとかasciiの制御コードはそもそも「文字」ではないですし。
「文字」をどう「出力」したいのかにもよります。

コードを示してはどうですか。
07317272008/01/14(月) 20:18:57ID:4AKnbZN2
$i = 0;
while($list = <IN>){
 (undef,$name[$i],undef) = split(/:/, $list);
 $i++;
}
@name = sort(@name);
while($line = <@name>){
 print "<option value='$line'>$line</option>";
}
えーっと、コードはこのような感じです。
ファイルのDBにアクセスして、その中の一部を取り出しソートしてhtmlで出力するという形です。
0732nobodyさん2008/01/14(月) 20:21:10ID:???
メタ文字がhtmlの解釈の問題を引き起こしてるんじゃないよね?
0733nobodyさん2008/01/14(月) 20:23:30ID:???
metaタグで宣言している文字コードと異なるとか…
html中で使われてる文字コードと出力してる変数の文字コードの不一致とか…
07347272008/01/14(月) 20:30:22ID:???
>>733
タグで宣言しているコードは関係ないのではと思います。
出力するとき、一部の文字がうまく表示出来ていませんから。
07357272008/01/14(月) 20:32:56ID:???
現状としてはファイルの中の「ソ」とかに\を付けていけば表示はうまくいくのですが、
ファイルをその後書き換えたりするとそれも出来なくなるのではないかと思っております。
0736nobodyさん2008/01/14(月) 20:40:00ID:???
これか?http://www.kentweb.jp/pubc/jcode/
0737nobodyさん2008/01/14(月) 20:46:05ID:???
>>735
use utf8;
binmode STDIN, ':encoding(shiftjis)';
binmode STDOUT, ':encoding(shiftjis)';
# windowsなら shiftjis -> cp932

↑やってみて
ソース中に日本語文字列書くならutf8で保存してね。
0738nobodyさん2008/01/14(月) 20:54:55ID:???
あw
binmode IN, ':encoding(shiftjis)';
かな?
0739nobodyさん2008/01/14(月) 20:57:33ID:???
>>731
DBにアクセスしているのにファイルハンドルから@nameに格納しているとはいかに?
@nameへの格納の仕方が心許ないです。せめて以下のようにするとか。
my @name = map { (split(/:/))[1] } <IN>;
splitの対象が全角のコロンですが、perlソースと取り扱うデータの文字コードが合っていないと
間違いの元ですよ。

で、optionタグで書き出すべき文字列のリストが@nameに入っていて、それをどうしてグロブ
演算子を使っているのかわかりません。私はこんなこと一度もしたことありませんが…。
ここで、@nameの各要素がいったん解釈されてしまっていて、カタカナのソなどSJISの2バイト目の
\x5cが取り除かれてしまっています。単に
for (sort @name) {
  print qq{<option value="$_">$_</option>\n};
}
でいいと思うのですが。
0740nobodyさん2008/01/16(水) 00:34:21ID:???
CGI::Applicationで index.cgi?rm=<デタラメなキー> のように
run_modesで定義されなかったrun_modeを指定するとエラーが発生させられてしまうのですが
未定義の場合デフォルトのrunmodeを起動させる方法は無いでしょうか?
0741nobodyさん2008/01/16(水) 02:08:57ID:???
$self->run_modes(
    AUTOLOAD => \&catch_my_exception,
);
0742nobodyさん2008/01/16(水) 02:17:14ID:???
>>741
ありがとうございます!試してみます。
0743nobodyさん2008/01/16(水) 04:59:20ID:FWbaTTLj
5.005です。
以下のような、引数が省略可能なサブルーチンがあるとします。

 sub Func(;$\@\%) { (省略) }

このとき、引数が渡されたのか、それとも省略されたのかを
Func内で判断する方法を教えてください。

なお、そのままifに入れると偽となるような値(例えばスカラーの値が0)の場合も、
引数が渡されていると判断します。
0744nobodyさん2008/01/16(水) 05:29:59ID:???
>>743
引数の数から判定
sub Func(;$\@\%) { print scalar @_ }
Func(); # 0
Func(undef); # 1
Func(1, @hoge); # 2
0745nobodyさん2008/01/16(水) 05:44:10ID:???
>744
ありがとうございます。
なるほど、サブルーチンを使う時は常に@_を意識しないとダメだってことですね。
0746nobodyさん2008/01/16(水) 11:29:46ID:???
@_ ってカタツムリみたいだよね。

@_ii
0747nobodyさん2008/01/16(水) 14:19:16ID:Z4nycbhz
かたつむり大作戦
0748nobodyさん2008/01/16(水) 20:06:54ID:L/Qn1HzA
質問です!

入門書を見ながら「URLにパラメータを加える」というのをやりました。

〜〜/test.cgi?list=man

とURLにパラメーターをくっつけ、cgiで

&ReadParse( *form );
$sex = $form{ 'list' };

と受け取ったつもりだったのですが、結果をprintしてみると

manman

と2回表示されてしまいます。これは何が悪いのでしょうか?
0749nobodyさん2008/01/16(水) 20:30:55ID:???
いるんだよ、自分で勝手に照会用のコードを切り詰める奴
07507482008/01/16(水) 20:51:36ID:???
失礼しました。手当たりしだい試してたら解決しました。
なんだか色々と間違ってたようです。
0751nobodyさん2008/01/16(水) 22:40:40ID:QOevDgBW
CGIモジュール等を使わない、
一般的なuriデコードのバグってどんな事ですか?

同じkeyに複数のvalがある場合の対処はしてます。
0752nobodyさん2008/01/17(木) 00:41:41ID:???
>>751
区切り文字が & でなく ; のときとか、マルチタイプで送られてきたときとか、XSS対策とかかな?
0753nobodyさん2008/01/17(木) 12:39:49ID:???
ちょっと考えてみてほしい
ドラゴンボールというのは、集めれば願いがかなうアイテムだ
それに対して、
ウンコは、いくらドッサリ集めてもウンコにしかならない
このように両者は一見似ているようで本質的に異なる
0754nobodyさん2008/01/17(木) 12:41:44ID:???
>>751
巨大なクエリーとか、lengthがでたらめとかかな?
# httpdの仕様にもよるな
0755nobodyさん2008/01/17(木) 17:15:28ID:???
uriデコード?とは関係ないけど
CGI.pm使うとmod_perl環境(Apache::RegistryやModPerl::Registry)で
-ParseHeadersやPerlSendHeader offしてあってもheaderを正しく扱えるので
CGIでもmod_perlでも動きます。ってプログラムが作りやすくなる。
0756nobodyさん2008/01/17(木) 17:17:24ID:???
>>751
バグってどういうこと?

引数には、ある程度想定されるものしか入らないはずなんだから、
$form{'hoge'} とか、引数として使う値に想定される正しい値が入っているかのチェックを行えばいいんじゃないの?
07577512008/01/17(木) 18:58:22ID:???
>>752
区切り文字はCGI.pmでも&か:ですよね。

>>754
cgi側では解決できないような感じしますね。

>>755
それは良いコト聞いた。

>>756
オライリーの本読んでたら一般的にバグがあるとの事です。
CGI..pm使えとの一点張りです。
なので、どこにバグがあるのかなと ← いまここ

みなさんレスありがとうございます。
0758nobodyさん2008/01/17(木) 23:23:09ID:???
とりあえず>>751がド初心者だということは分かった。
0759nobodyさん2008/01/18(金) 00:48:01ID:???
>>758
スレタイ読めカス
0760nobodyさん2008/01/18(金) 12:04:46ID:Z4Jr4bli
ファイルをサーバにアップロードしたいCGIがほしいのですが
どこかいいサンプルないでしょうか?

アップロードしたいファイルはエクセルファイルです
0761nobodyさん2008/01/18(金) 12:15:45ID:???
ぐぐれかす
0762nobodyさん2008/01/18(金) 12:39:13ID:???
アップロードされたファイルのを受信するCGIなのか、
それともファイルをアップロードするCGIなのか知らんけど
http://search.cpan.org/~gaas/libwww-perl-5.808/lib/HTTP/Request/Common.pm
http://search.cpan.org/~lds/CGI.pm-3.33/CGI.pm#CREATING_A_FILE_UPLOAD_FIELD
0763nobodyさん2008/01/18(金) 12:51:11ID:???
>>760
ちゃんとした日本語で
0764nobodyさん2008/01/18(金) 14:27:48ID:???
アップロードしたがってるCGIが欲しいんだろ
0765nobodyさん2008/01/18(金) 15:13:46ID:???
意思を持つCGIコワス
0766nobodyさん2008/01/18(金) 16:38:38ID:???
>>760 こんな感じですか?
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use CGI qw/:standard/;
use constant MAX_WAIT => 10;
my $q = new CGI;
$q->charset('utf8');
my $wait = rand(MAX_WAIT);
my @mind = qw(uploadしたい uploadしたくない uploadしてもいい);
my $mind = $mind[ int( rand(scalar @mind) ) ];
print start_html(
-head => meta({-http_equiv=>'refresh', -content=>"10; URL=$ENV{SCRIPT_NAME}"}),
-title => 'CGIの気持ち'
),$mind,end_html;
0767nobodyさん2008/01/19(土) 01:06:12ID:???
>>766
$waitは、どこで使ってるの?
-head => meta({-http_equiv=>'refresh', -content=>"$wait; URL=$ENV{SCRIPT_NAME}"}),
とかやりたかったのか?
0768nobodyさん2008/01/19(土) 14:38:24ID:gMv3rNuv
すみません、少し数学の話になるかもしれませんが、
100%の確率のうち30%が当たりという設定をして
くじを引かせる場合、

my $rate = 30;
my $atari = int((rand(100))) + 1;
if($atari <= $rate){
 print "あたり\n";
}

これで30%ということに理屈ではいえるのでしょうか。
それとも上か下かなので2分の1になるのでしょうか。

ご教示いただけますと幸いです。
0769nobodyさん2008/01/19(土) 15:04:56ID:???
算数のレベルだぞ
0770nobodyさん2008/01/19(土) 15:25:31ID:???
すみません
0771nobodyさん2008/01/19(土) 16:00:15ID:???
>>768
そういうときは、そのコードを何万回か繰り返してあたりとはずれのカウントを取って、
実際に30%くらいになるかを調べればいいんですよ。
0772nobodyさん2008/01/19(土) 17:54:09ID:???
>>768
極東連合乙
0773nobodyさん2008/01/19(土) 18:03:47ID:???
>>768
10000回だけ繰り返してみた。

あたり=3031
はずれ=6969
0774nobodyさん2008/01/19(土) 21:24:36ID:???
>>771
ありがとうございます。

>>773
実行有難うございます。
私の方でもやってみましたが、平均値が30%になりました。
安心しました。
0775nobodyさん2008/01/19(土) 23:16:40ID:???
#!/usr/bin/env perl
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use POSIX qw(strftime);
my $q = new CGI;
print $q->header(), $q->start_html();
#print $q->dump; # for debug
my $outputdir = "log"; # ファイルを置く先 (ディレクトリ)
my $fh = $q->param('uploaded_file');
my ($ex) = ($fh =~ m|(\.[^./\\]+)$|); # 拡張子
if ($fh ne "") {
my $timestamp = strftime "%y%m%d%H%M%S", localtime;
my $outputfn = "$outputdir/$timestamp$ex";
open(F, "> $outputfn") or die;
flock(F, 2);
if (defined $fh) {
while (<$fh>) {
print F $_;
}
}
close F;
print qq{saved as <a href="$outputfn">$outputfn</a>};
}
print $q->start_multipart_form(-name => 'myform'),
$q->filefield(-name => 'uploaded_file'),
$q->submit("OK"),
$q->endform,
$q->end_html(), "\n";
07767602008/01/19(土) 23:18:40ID:???
ファイルをアップロードするCGIを探してます。
日本語おかしかったですね、すいません。
サンプルを探したんですが
>>775のままだったら
ファイルをアップしたときにファイル名が
アップロードした日付になってしまいます。
ファイル名を変更することなくアップロードするにはどうすればいいでしょうか?
0777nobodyさん2008/01/20(日) 00:14:39ID:1RDcSYMg
my $outputfn = "$outputdir/$timestamp$ex";
のところを、そうじゃなくすれば良い。
0778nobodyさん2008/01/20(日) 00:15:00ID:???
>>776
マルチタイプを分割して、そのヘッダ部分に名前あるよ。
0779nobodyさん2008/01/20(日) 02:12:08ID:???
ついでにフォルダ名も表示してやれば、閑古鳥鳴くこと間違い無し。
0780nobodyさん2008/01/20(日) 03:03:09ID:???
サーバにファイル名を任意に保存出来るって危険じゃね?
同名ファイルの処理が必要になるし、文字化けとかあるし。
文字化けとかしたら、ダウソとか出来なくなる場合もあるし、
削除とかはsshログインして * とか使って消さないといけなく
なる場合もある。(解決は出来るから問題なしともいえるのだが)
日本語はファイルと一緒にコメントとして管理すべきだと思うけど、
どうかな?
0781nobodyさん2008/01/20(日) 10:25:46ID:???
>>780
間違いなく正しい。
0782nobodyさん2008/01/20(日) 19:19:48ID:xw354eHR
上の人とは別人だけどファイルのアップロードに関して質問

open(OUT, ">$filename");
binmode(OUT);
while (read($fh, $buf, 1024)) { print OUT $buf; }
close(OUT);
close($fh);

上記なソースをよく見かけるんだけど、
三行目で一気に処理するんじゃなくて、
1024バイトずつ取り出して処理する理由って何?
0783nobodyさん2008/01/20(日) 19:21:07ID:???
1000MBのバッファ蓄えろというのか
07847752008/01/20(日) 19:37:21ID:???
>>777
具体的にどうかえればいいのでしょうか?
教えてくださいとはいいません。
やってください

>>780
ご意見ありがとうございます。
0785nobodyさん2008/01/20(日) 20:21:40ID:???
完全に自分専用とかなら別なんだろうけどな。
■ このスレッドは過去ログ倉庫に格納されています