[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 07/03 13:37 / Filesize : 153 KB / Number-of Response : 618
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 34箱目



1 名前:デフォルトの名無しさん mailto:sage [2008/01/11(金) 00:07:22 ]
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 ttp://pc11.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

ttp://www.perl.org/get.html
● 2008/01/11現在の最新版: 5.10.0
● 2007/01/11現在の開発版: 5.9.5

前スレ
Perlについての質問箱 33箱目
pc11.2ch.net/test/read.cgi/tech/1192463997/

リンク集は>>2-3
過去スレは>>4 あたり


331 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:57:31 ]
理由はユーザーが多いから?年期の入った言語ゆえにソースが転がってるから??
後発の言語のほうが練られてそうなんですが。
初学者なんでこのままマスターしようか乗り換えようか迷ってるのですわ。

332 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:02:24 ]
perlなんて簡単なバッチ処理を書いて使い捨てにするようなのに向いてる言語だから、
マスターした!って達成感を味わいたいなら別の言語にしたほうがいいよ。

333 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:05:36 ]
perlを使う理由なんて「どこにでもある」「たいていのものはCPANにある」しかないよ。

334 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:08:19 ]
マスターてのがどういう状態を指してるのか分からんが、
一通り文法覚えて書けるようになるだけなら、RubyもPythonも大して変わらんね

335 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:24:51 ]
Perlぐらい憶えときゃええがな。他言語へも1,2週で移行できるわな
そんな人生の選択みたいに迷うほどのことちゃいまっせ

336 名前:331 mailto:sage [2008/02/07(木) 01:43:10 ]
マスターって言葉使いましたが単にテキスト処理ならなんでもってレベルです。
レスありがとうございました。とりあえずPerl覚えときます。

337 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:50:17 ]
>>327
横入りだけどJcode使ってた身としてはEncodeはかゆいとこに手が届かないなぁ。
あと、今はPHPとかエディタの機能とかで知れてるけど正規表現に腰が引けてる人もいたかもね。
使いこなせば強い味方だけどいきなりだとさっぱりわからんだろうし。
記述の簡略化はあるねー即興で組んだやつはファイルのクローズせずに終わらせたりかなり乱暴なことしてる。

338 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 02:12:19 ]
良くも悪くも無茶な書きかたができるよね

339 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 09:46:44 ]
コード書く
→後日、意味もなく省略化を施す
→さらに後日、自分の書いたものが理解できず解読作業

ひとつのコードで3回も楽しめるPerlサイコー\(^o^)/



340 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 10:38:16 ]
>>339
あるあるwwwありすぎて困るwww

341 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 11:22:36 ]
日々のperlは書き捨て

342 名前:デフォルトの名無しさん [2008/02/07(木) 12:13:33 ]

激しくスレ違いかもしれませんが、質問です。

PCゲームを多重起動しようと試みたのですがダメでした。
大抵のゲームはWindowsのアカウントを2つ作成し、別々のアカウントで起動すれば問題ありません。

現在、Vistaを使っているのでXPではどうなるかはわかりませんが(XPは右クリックから別ユーザーで起動が可能)、
Vistaでその手法をとる場合、runasコマンドを使用することになります。
しかしこのコマンドで別々に起動しても、後から起動したほうが無効になってしまいました。

で、ここからがわけわかめなのですが、同一のデスクトップからの起動はダメでも、
Windowメニュー→ユーザー切り替えをし、別々に起動すればうまくいきました。

この違いはいったいなんなのでしょうか?
 

343 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:17:36 ]
このゆとりはいったいなんなのでしょうか?

344 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 12:27:32 ]
単なる誤爆じゃね? と思いたいが

345 名前:デフォルトの名無しさん [2008/02/07(木) 15:02:53 ]
use utf8;
use Encode;
use WWW::Mechanize;

my $start = "***.com/***html";
my $mech = WWW::Mechanize->new( autocheck => 1 );
$mech->get( $start );

my $phrase = 'こんにちは';
$mech->follow_link( text_regex => qr/$phrase/);
.....

見たいなコードを書いて日本語のページ(shiftjis)をとりに行ってるんだけど、
getのときの文字コードの判別がうまくいかないので、
text_regexがうまく動かないんですが、いい方法ないですか?


346 名前:デフォルトの名無しさん [2008/02/07(木) 17:29:33 ]
>>345
裏2chにあります

●裏2chの入り方
1・”名前欄”に「ura2ch.czfusianasana.net」と入力します。
  裏2chへ飛ぶためのコマンドです、間違えないように”「」”の内側の文字をコピーペーストして下さい。 
2・メール欄に閲覧したい板の関連キーワードを入力してください。
 例:ロリ、グロ、無修正など
3・”本文欄”にIDとパスワードを入力します。
  ID/パスワード=「guest/guest」
4・書き込みが終了すると2chのTOPに戻るのでもう一度入場
5・背景が暗転していたら成功、裏2chに侵入出来ています。

ちなみに裏2chに既存の板は勿論存在します、それにサーバーは外国のサーバーなので日本のややこしい法律に抵触する事も無いです
週末や2ちゃんねるで話題の事件があるときはアクセス数が増えサーバーに負荷がかかる為、つながりについ場合があります
スポーツ選手のコラや無臭性画像も多数UPされている板も存在します
それに完全な匿名性を誇るので違法行為を繰り返しても逮捕される事はまずありません

347 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:01:32 ]
すごい久々にそのコピペ見た。

348 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:07:56 ]
:content_cbで変換するとか?


349 名前:p4143-ipbfp205otsu.shiga.ocn.ne.jp ◆TWARamEjuA mailto:例:ロリ、グロ、無修正など sage [2008/02/07(木) 20:57:18 BE:3811875-2BP(6825)]
wktk♪

名前が長すぎるようです♪



350 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 21:41:57 ]
コマンドプロンプトでperl -vと打ち込むところでperlと打ち込んだら
exitと打ち込んでもコマンドプロンプトが終了できなくなってしまいます・・・

351 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:03:10 ]
__END__

352 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:08:09 ]
kill -KILL `pidof perl`

353 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:10:53 ]
^D

354 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 23:16:05 ]
CTRL+Z
エンター

355 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:33:02 ]
ctrl+s押して右往左往したことはある

356 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:05:11 ]
>>355
あるある。リンクが切れたのかと思っちまう。

#ちなみに、Ctrl+Qでぬける。


357 名前:345 mailto:sage [2008/02/08(金) 11:45:09 ]
自己解決しました。
裏2ちゃんねるにはいけませんでした、残念w


358 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:38:06 ]
>>332
>perlなんて簡単なバッチ処理を書いて使い捨てにするようなのに向いてる言語だから、

したり顔でそんな放言出来るなんて、おまいはまだまだだな。
perlでも信頼性と保守性を担った、アプリケーションと呼べるレベルのものまで書けるわさ。

359 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 00:57:31 ]
でっていう



360 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:14:05 ]
さくっと書いてさくっと終わるようなものに 「も」 向いている言語だというのは間違いないんじゃないかな

361 名前:デフォルトの名無しさん [2008/02/09(土) 01:32:18 ]
いっしょけんめいPerlのコアなプログラミングを学習したところで、
就職にはなんの役にも立たない。
それどころか、履歴書や職務経歴書に「Perl」などと書こうものなら
面接のその場で不採用決定。
C言語とか覚えとけば、java やその他の言語にも生かせるが
Perlじゃ「つぶしが利かない」からねぇ。

362 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:38:34 ]
まあ、趣味のプログラマな人間には全く関係ない話題ではあるなあ。

363 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:52:55 ]
ウチの会社なら…履歴書の審査は通るぞ!
(他の履歴とか面接でダメになる可能性はるけど)



364 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:54:14 ]
VBとか書いてあるよりはマシ。
まあ、会社の分野というか方向性によって違うんだろうけど。

365 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 06:17:51 ]
「特技: 自転車に乗れます」と書くようなもんだからな。

366 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 06:38:44 ]
参照渡しについて質問。

$a = 'aa';
$b = \$a;
print $$b;

のデリファレンスを

print $b;

この形で行いたいんですが、良い代入方法は無いでしょうか?
*b = *a;は配列とかも同じになるので無しで。

PHPの
$b = &$a;
みたなのを希望。


367 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:02:56 ]
>>366
www.kt.rim.or.jp/~kbk/perl5.005/perlmod.html#Symbol_Tables
$b = \$a;

368 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:07:50 ]
>>367
ありがとうございます。
読んで来ます。

369 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:14:46 ]
比較で一致しないのはなぜ? 整数だと一致するし、直接比較しても一致する。 $b = $b+0.1;
がみそ?

$a = 5.5;
$b = 4.5;

for($i = 0; $i< 11 ; $i++)
{
if($a == $b)
{
printf("match :");
}
else
{
printf("unmatch :");
}

printf( "%2.2f %2.2f \n",$b,$a);

$b = $b+0.1;
}

結果

unmatch :5.40 5.50
unmatch :5.50 5.50   (- 一致しない



370 名前:デフォルトの名無しさん [2008/02/09(土) 09:24:45 ]
>>369
異なる値が一致しないのは当然。

371 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:50:00 ]
浮動小数点を==で比較してはいけない。プログラミングの常識。

372 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:51:09 ]
差の絶対値がある閾値より小さいかどうかで調べるよね。

373 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:58:13 ]
へーそうなんだ。整数しか使ったことがないから知らなかった。
369じゃないけど勉強になったわ。

374 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:12:53 ]
cygwinのPerlだと
perl -e '$A=5.5;$B=5.500000000000001;print "match\n"if $A eq $B'
これがイコールになっちゃうみたいですね

375 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:18:45 ]
浮動小数点表現では0.1が循環小数になる。
(だからお金の計算に浮動小数点使っちゃだめ)

376 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:02:59 ]
>>374
eqの意味知っていて意図的に使ってるの?

377 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:08:21 ]
>>374
こりゃ便利だな。

378 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:17:17 ]
>>371
FAQのようですね。確かに今回初めて浮動小数点の比較を使ったんだけど、知らなかった。

379 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:29:41 ]
>>378
> FAQのようですね。

ちゃう。ちゃんとした教育を受けた人なら、質問を出す前に教わるくらいの事柄。





380 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:32:41 ]
>>375
じゃあ、お金の計算には何使えばいいんだ?
利息計算とかでいやでも小数使うと思うんだが。

381 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:40:17 ]
10進浮動小数点数

382 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:45:35 ]
>>379
スマソ。
教育は受けてない。


383 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:49:14 ]
Perlの場合はBigDecimalだったっけ?

384 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:20:08 ]
>>380
例えば消費税なら価格に5かけてから100で割る。
要するに細かい計算は整数で計算する。

385 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:50:44 ]
それでは、コボラーさんどうぞ
↓↓↓↓↓↓↓↓↓↓↓↓↓↓

386 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:52:56 ]
固定小数点という便利な言い方があると思うんだが(笑)


387 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 19:02:22 ]
固定小数点でも底が2なら0.1は表せないだろ。

388 名前:デフォルトの名無しさん [2008/02/09(土) 20:29:27 ]
ある既存のシステムからもらってきたデータの中に4バイトの単精度実数が入ってるんです。
それを受け取りたいんですが、画面表示すると丸め誤差ってヤツ?が出てしまうんです。
ためしにやってみたこと

$x=pack('f', 123456 ); $y=unpack('f', $x); print $y,"\n";
$x=pack('f', 0.05 ); $y=unpack('f', $x); print $y,"\n";
$x=pack('f', 0.0000001); $y=unpack('f', $x); print $y,"\n";

結果
123456
0.0500000007450581
1.0000000116861e-007

元の数字に戻すには、どうしたらいいですか?

389 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:32:19 ]
>387
「固定少数点」でググれ



390 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 20:34:52 ]
>388
精度を指定すれば?

391 名前:386 mailto:sage [2008/02/09(土) 20:36:48 ]
>387
すまん、>384への補足のつもりだったんだ


392 名前:デフォルトの名無しさん [2008/02/09(土) 20:52:05 ]
>>390
精度の指定の仕方を教えてください。

393 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:44:37 ]
>>388
$x=pack('f', 0.0000001 ); $y=unpack('f', $x); ($z = sprintf("%.7f\n", $y)) =~ s/\.?0*$//;print $z;

394 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:23:05 ]
標準入力を待つため以下の様に書いたがうまくいきません。
何がまずいのでしょうか。ActivePerl5.8です。

use IO::Select;
$sel = IO::Select->new;
$sel->add(\*STDIN);
while(1){
print "can_read\n";
@a = $sel->can_read;
foreach $fh (@a){
if($fh == STDIN){
print "STDIN\n";
}
exit;
}
}

395 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:51:18 ]
>394
perlport より
>select
>Only implemented on sockets. (Win32, VMS)

396 名前:394 mailto:sage [2008/02/10(日) 18:23:33 ]
>395
そう言う事かー。納得しました。ありがとうございました。

397 名前:デフォルトの名無しさん [2008/02/11(月) 02:25:54 ]
現在、与えられた文字列を読み込み、それを元にHTMLを出力するプログラムを作成しています。
与えられた文字列の中に特定のキーワードを見つけると、それをリンクに変換するようにしたいと考えています。

例:
  [google:hoge] → <a href="www.google.co.jp/search?q=hoge">Googleでhogeを検索</a>
  [mixi:xxxxx]  → <a href="mixi.jp/show_friend.pl?id=xxxxx">mixi</a>
  xxx.xx → <a href="xxx.xx">xxx.xx</a>

こういった置換を行うコードを1つずつ書くのではなく、
例えば、以下のような置換パターンをセットしたハッシュを用意しておき

  %hash = (
    '\[google:\w+\]' => '<a href="www.google.co.jp/search?q=$1">Googleで$1を検索</a>',
  )

forやforeachで回しながら自動的に置換したいのですが、どのようにすればよいでしょうか。
(エンコードとかは考えない方向で)

 foreach my $key (keys %hash)
 {
   $input_str =~ s/$key/$hash{$key}/g;
 }

とやった場合、変換後の文字列の中に「$1」そのものが入ってしまいます。


398 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:29:35 ]
$input_str =~ s/$key/$hash{$key}/gee;

できるかは知らん


399 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 10:43:55 ]
>>397
クロスサイトスクリプティングって知ってるか?
素人のCGI作成は法律で禁止して欲しい。



400 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 11:28:03 ]
>>397
答えそのものは書かないけど、以下のことが必要。
'\[google:\w+\]'の部分は'\[google:(\w+)\]'でしょうね。そうしないと
$1で受け取れないから。
置換をするなら、
$input_str =~ s/$key/conv($1, $hash{$key})/eg;
などとしておいて、
sub conv {
    my ($word, $str) = @_;
    $str =~ s/\$1/$word/g;
    $str;
}
などとでもしておくとか。
で、
URLのクエリー部分に仕込む文字列はURIエスケープが必要。
そんで、マルチバイトの場合、どの文字コードにしてからエスケープするかも
考える必要あり。
さらに、<a>と</a>の間の文字列に使用するときはサニタイズ処理が必要(XSS対策)。
>>398 の方法だと、perlコードをそのまま解釈してしまうので、別の危険あり。
「与えられた文字列」は誰が与えるのかがとても大きな問題です。
URLにリンクを張るのは、大崎氏のPerlメモが使えると思います。

401 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 11:57:26 ]
>399
もちろん知ってます。
置換条件と置換パターンを配列などに保持しておく(または外部から読み込む)という考え方自体が
セキュアではないということでしょうか?

>400
( )で括って無かったのは書き込み時のミスです、すみません。
手元のソースでは書かれてたんですが、適当な条件に直すときに忘れてしまったようです。





402 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:22:23 ]
置換パターンにperlの$1を流用しようとしてるところがセキュアでない。

'<a href="www.google.co.jp/search?q=${1:urlencode(utf8)}">Googleで${1:htmlsafe}を検索</a>'

とかして、これを解釈するようにすればよい。

403 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 17:27:17 ]
ありがとうございます。

自分用のツールをさくっと作るつもりだったけど、そこまでやろうとすると手間かなあ。
誰かモジュール作ってるかもしれないけど。

404 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:12:59 ]
質問です。
'おまんこ'も'おちんこ'もマッチしないのですが、どこか間違いあるのでしょうか?

use strict;
use warnings;
use utf8;
binmode STDOUT, ':utf8';

while (my $str = <STDIN>) {
chomp($str);
last if ($str eq 'end');
if ($str =~ /お.んこ/) {
print "$& --- マッチしたお\n";
} else {
print "マッチしないお\n";
}
}


405 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:16:55 ]
binmode STDIN, ':utf8';

追加したらマッチしますた。

406 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 05:34:25 ]
質問です。

use Encode;
binmode STDOUT, ':iso-8859-1';
open READ , '<:encoding(utf8)', "$ARGV[0]" ;
while (my $data = <READ>){
print "$data";
}
close READ;

exit;

でutf8でencodeされたファイルをiso-8859-1に変換しようとしたら、
標準出力ではうまくいって、リダイレクトすると文字化けしました。

おわかりになる方、いらっしゃるでしょうか。

407 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 05:45:10 ]
lv でみれないだけで、less したらみれました…すいません。

408 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 09:07:43 ]
>>407
lvのほうがlessより優秀ってイメージなんだけど、lvが文字コードを誤判定しちゃったのかな。

409 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:12:12 ]
use CGI;
my $delimiter = "\t";
my $q = new CGI;
my $save = $q->param('name') . $delimiter . $q->param('mail');
my ($name, $mail) = split /$delimiter/, $save;

入力はHTMLフォームからを想定しています。
こういった場合に適切なデリミタは何でしょうか。
たまに<>を見かけますが<>を><に変換してる場合じゃないと有効で無いですし
\tは入力が可能、\0は良い方法だと思いますがCGI.pmと衝突します。
\a等が良いのでしょうか。



410 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:14:45 ]
× たまに<>を見かけますが<>を><に変換してる場合じゃないと有効で無いですし
○ たまに<>を見かけますが<>を&lt;&gt;に変換してる場合じゃないと有効で無いですし
ミスりました汗

411 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:52:41 ]
板違いっぽいがスペースじゃだめ?

412 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:13:53 ]
$save の前に入力チェックしてタブ文字を消せばいいだろ

413 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 14:12:21 ]

my $save = join("&&", map { my $i = $q->param($_); $i =~ s/&/&/g; $i } ("name","mail"));
my($name,$mail) =~ map { s/&/&/g; $_ }(split("&&",$save));

414 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:08:01 ]
>>409
<SOME_UNPREDICTABLE_STRING_XXX> でおk

415 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:16:04 ]
投資家板で名高いプログラマの書いたコードですが
初心者が多く、下記コードについて評価できません
プロの目から見た下記コードの評価を教えて下さいませ

live27.2ch.net/test/read.cgi/market/1202806626/454

$vict++;
$vict100++;
print $_ ."$riekiプラス!持ち越し成功!\n";
}
if($end < $start2){
$loss=$start2-$end;
$loss=~s/\-//;
$totall =$loss + $totall;
$totall100 =$loss + $totall100;
$lost++;
$lost100++;
print $_ ."$loss マイナス!持ち越し失敗!\n";
}
}



416 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:16:34 ]
つづきです

if(($cost < 1000)&&($cost > 300 )){
if($end > $start2){
$rieki=$end -$start2;
$rieki=~s/\-//;
$totalr =$rieki+$totalr;
$totalr1000 =$rieki+$totalr1000;
$vict++;
$vict1000++;
print $_ . "$riekiプラス!持ち越し成功!\n";
}
if($end < $start2){
$loss=$end-$start2;
$loss=~s/\-//;
$totall =$loss + $totall;
$totall1000 =$loss + $totall1000;
$lost++;
$lost1000++;
print $_ . "$lossマイナス!持ち越し失敗!\n";
}


417 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:22:13 ]
>>415
前の部分が欠けてて途中からになってるけど…?

418 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:35:29 ]
書きかたはまるっきり初心者

処理内容としては
1.コストで場合分け(ここで見えてるのは300から1000まで)
2.スタートとエンドの差をとって,スタートがエンドより低ければ利益,逆なら損害として出力
3.利益または損害をトータルに加算
4.利益の出た回数と損害の出た回数をカウント.コストの範囲ごとにもカウント

なんつうか小学生でも計算できる内容だ

419 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:43:46 ]
計算さえ出来ればいいんでしょ?
合ってりゃいいと思うよ



420 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 11:54:35 ]
>>415
軽くスレ読んだが名高いプログラマじゃなくて単に周りに避けられてる面倒くさい人じゃん。
コードは上で言われてるように初心者でも書ける程度のもん。
プログラム書かない人にけん制になると思ったのかもしれんが
こんなの書いて自慢する人より電卓持ってる事務員のがずっとマシ。

421 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:08:22 ]
ちゃんと動いて計算が合ってるならいいんじゃないの?
それ以外に評価しようが無い。

422 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:11:02 ]
「名高いプログラマ」ってとこは確かにどうかと思うコードではあるw

423 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:17:13 ]
あっちのことはよく知らないけど,変な演算する能力よりもデータを見極める目のほうが大事なんじゃないの?

424 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:25:14 ]
主婦が、余った材料で栄養バランスの取れた料理を作るようなイメージ。
プロの料理人と比較しちゃいけない。

425 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:27:12 ]
典型的なうんコードだな

426 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:31:07 ]
>>421
あ、ごめん。機能満たすだけなら充分。
でも向こうのでの使い方が目的あって出してるコードじゃなく
素人にコード見せて牽制してるだけだからこんなの自慢にならんなぁって。

427 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:36:31 ]
データを集積して処理するならともかく、この程度のことなら電卓+ノートのほうがいいと思うがな

428 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:40:32 ]
サイタマン は やっぱり うんこだった!

429 名前:415のスレ住人 mailto:sage [2008/02/13(水) 12:41:56 ]
名高いプログラマーというより彼は社長だそうです。
年収3000万だったそうです。
ですからプログラムの内容というよりは
アイデアで儲けている方なのかもしれませんね。
真実が定かでは無いのですが彼がIT企業の社長という点はどう思われますか?



430 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:42:37 ]
>>424
だが余った食材をそのまま食べたほうが味も見た目も栄養も手間も優れていたというパターン
ただの自己満足にしかなってないという…

431 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 12:43:04 ]
こっちに来られると困るからノーコメント。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<153KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef