Perlについての質問箱 63箱目
■ このスレッドは過去ログ倉庫に格納されています
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。 CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。 (WEBプログラミング板: http://kohada.2ch.net/php/ ) このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 荒らしはスルー推奨。 "The duct tape of the Internet" こと、Perlについての質問箱です。 "There's more than one way to do it" ということで、 Perlの奥深さについて皆で語り合い、追求してまいりましょう。 www.perl.org/get.html Download Latest Stable Source (5.18.2) ▼前スレ Perlについての質問箱 61箱目 http://toro.2ch.net/test/read.cgi/tech/1381561905/ Perlについての質問箱 62箱目 http://toro.2ch.net/test/read.cgi/tech/1385039352/ そういう糞雑魚がパーティーに入れない(入ったとしてもデメリットが大きい)MMORPG作りたいんだけど、 PerlでMMOサーバー作れる? そうした寄生のできないちゃんとしたMMORPGを作りたい 誰とは質問言わないが、明後日の方向向いたレスしてる知的障がい者がいるな Perlで作れるかどうかという質問なんだがな Perl使ってると日本語すら理解できなくなるのか、それとももともと日本語を理解できない朝鮮人が紛れ込んでいるのか 自分にできないものだから、それをこじらせて 自分以外の人間全員できないと思うようになったのか ここまでくると哀れだな ID:Ba0Z9f3i 俺もこいつには無理って意見に全面的に賛成するわ。 そもそもPerlで作るって発想が馬鹿。 それ以前にそもそもPerlなんてゴミを使おうと思う時点で馬鹿。 使い物にならない時代遅れの言語が候補に出てくる時点でプログラマとして致命的。 サーバーサイドをPerlで作ってるところはそこそこあるだろう だから君には無理だって perlでmmoサーバ作れないどころか想像すらできないみたいだし 俺は作れるかどうかを疑問視してるんでは無いと思うんだがな >インタプリタを? これをどういう風な意味に受け取ってるのかだろう 言語としてはPerlはチューリング完全を満たしています 最初に調べることだと思われますが mmoサーバも作れないゴミ乙 言語がゴミなのか、perl厨がゴミなのか、それとも両方か (´・ω・`) / `ヽ. お薬増やしておきますねー __/ ┃)) __i | / ヽ,,⌒)___(,,ノ\ (´・ω・) チラッ / `ヽ. __/ ┃ __i | / ヽ,,⌒)___(,,ノ\ (´・ω・`) / `ヽ. 今度カウンセリングも受けましょうねー __/ ┃)) __i | / ヽ,,⌒)___(,,ノ\ オンラインゲームを支える技術、中嶋謙互、2011、技術評論社 サーバの構築・運営、通信量など、 オンラインゲームのほぼ全工程を、説明した本です 大人数用MMOと少人数用P2Pの、両方について書いてある 確か言語は、C++ だったかな? そらそうだろ、Perlなんて電子産廃なんだからC系とかPHPになるだろうよ。 Perlで何かを作ろうってほうがおかしい。 PHPに代えたって意味無いじゃん 同様の理由でPythonも却下 >>573 大規模なオンラインゲームだと むしろJavaを使うんじゃないかな? 人集めしやすいし 寄生できないmmoとか簡単そうだけどな (1)死ぬたびに獲得経験値1/10 (2)3回死亡でダンジョンから強制排出&所持金半減&獲得経験値ゼロ (3)経験値はパーティーメンバーの敵に与えたダメージ比率 (3)があれば身の丈に合ってないダンジョンの時点で経験値はほぼゼロ ほぼゼロなところへ(1)があるから限りなくゼロに近くなる 寄生でダンジョンクリアだけしようにも(2)のハイリスクがある >>581 回復職やサポート職の経験値もなしということでしょうか。 昔はこれでアラーにならなかったのですが、perl5.8でこれを実行すると @{$_[2]}が原因でこけてるらしいです。 どのように変えればよいでしょうか my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ); >>583 # http://perldoc.perl.org/5.8.9/Scalar/Util.html use Scalar::Util qw(reftype); my @WdayArr = reftype($_[2]) eq 'ARRAY' ? @{$_[2]} : qw(Sun Mon Tue Wed Thu Fri Sat); >>584 ありがとうございます。やってみます。 >>585 曜日の文字を配列に指定する部分です。なければ、英語の曜日が入ります >>586 Perl 5.16.3 だが、下のスクリプトで1行目を入れても 消しても、きちんと動くぞ。 $_[2]に配列のリファレンス以外のものを入れたのだろう。 (エラーメッセージにそう書いてあるはずなんだが) ----------------------------------------- $_[2] = [qw(a b c d e f g)]; my ( @WdayArr ) = ( $_[2] )? @{$_[2]} : ( 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ); print @WdayArr; >>588 use strict;を指定すると参照ダメみたいなエラーが出るので とりあえずuse strict;を外して応急処置しています。 参照渡しができなくなったんでしょうか こういう時はエラーメッセージをそのまま貼るのが正解 このようなエラーが Can't use string ("ARRAY(0x10b0458)") as an ARRAY ref while "strict refs" in use at obj.cgi ARRAY(0x10b0458) というのは配列リファレンスを文字列として評価した時に出てくる 関数の呼び出し元で配列をそのまま渡さずにダブルクォートで囲うなどして文字列化してしまっているのだろう ありがとうございます。関数の実行側のほうを確認します。 Perlはマジで糞だな リファレンスはリファレンスで同じじゃねーの? バックスラッシュ付けたリファレンスでも種類によって違うとか意味不明 Cの共用体のようなことしなければ、 ある「型」のリファレンスは その「型」のリファレンスのままでよい。 それ以外の使い方をすれば、「間違っている」として エラーを吐いてくれるのが有難いではないか。 ただ、リストのリファレンスをハッシュの リファレンスとして使いたい時(またはその逆) がたまにあるが、それは可能にしてほしいと思う。 # こういうのじゃいかんか? my $ref_to_hash0 = +{ @{ $ref_to_array0 } }; my $ref_to_array1 = [ %{ $ref_to_hash1 } ]; >>597 無駄なものがあって読みづらい my $ref_to_hash0 = { @$ref_to_array0 }; my $ref_to_array1 = [ %$ref_to_hash1 ]; 何がしたいのかわからん。 キーと値が交互に出てくるものを ハッシュかリストに変換したいのか? my $ref_to_hash0 = { $ref_to_array0->@* }; my $ref_to_array1 = [ $ref_to_hash1->%* ]; Javaのクラス周りに慣れるとPerlのクラス周りは本当に不自由だと気付く 比較例に出すのにJavaのクラスなんぞを持ち出すのもどうかと xp 32bit xp対応のアクティブパール(ActivePerl)がダウンロードできないです 旧バージョンはどこからダウンロードできますか? >>602 active perl old version でググると、色々出てくるぞ。 実際、どれが使えるのかは知らんが。 $str = "LIST( '2016123456','2015123456','2017987654',…) という$strがあった時に、シングルクオートに囲まれた部分だけを取り出して @listに突っ込みたいんだけどどう書いたらいい? splitの正規表現でいけるかと思ったけどどう書いていいかわからない。 >>602 5.16なら間違いなく使えてる 5.18と5,20はファイル名に64intがくっついてて動くかどうかはわからない 今activesite見てきたら、まあ流し読みしかしてないけど、古いバージョンは有料で提供してやるよって買いてあった Need Perl on production servers or access to Perl 5.6, 5.8, 5.10, 5.12, 5.14, 5.16, 5.18 or 5.20? Learn more about ActivePerl Business Edition -------------------------------------------------------------------------------------------------------------------------- Get the language version you need on the platform you want. The following versions are available for purchase with Business Edition+: ActivePerl 5.8, 5.10, 5.12, 5.14, 5.16, 5.18, 5.20, 5.22, 5.24 ActivePython 2.5, 2.6, 2.7, 3.2, 3.3, 3.4, 3.5 ActiveTcl 8.4, 8.5, 8.6 >>604 push @list, $1 while $str =~ /'([0-9]+)'/g; >>604 $str = "LIST( '2016123456','2015123456','2017987654',…) $str =~ s/LIST/@list=/; eval($str); でいいんじゃね? >>608 > push @list, $1 while $str =~ /'([0-9]+)'/g; 惜しいね。それやるならこうだよ @list = $str =~ /'([0-9]+)'/g; >>611 読みやすさなら上の方が良くね? 新人に引き継ぐ時の事考えると >>602 2014年にダウンロードした ActivePerl-5.16.3.1604-MSWin32-x86-298023.msi を持っている。 ただ、Active State が古いバージョンを有償でのみ提供 しているのに、勝手に古いバージョンをうpしていいものか解らん。 そのあたり、クリアにしたら、どこかにうpしてやってもいいが。 m//g の形式でグローバルマッチの意味がないように思うが >>614 m//g をリストコンテキストで使うと、 全てのマッチ部分のリストが返される。 あると高速化できるようなrecommendsだけどインストールされていないモジュールを一覧出来る方法を教えて下さい >>602 googleでググったらすぐに見つかったけど? https://xray-engine.org/index.php?title=ActivePerl (このサイトは開くとき継続しますかって警告が出たんで ルート証明の認証に問題があるかも知れない 一応Java ScriptとActiveXの実行は切ってアクセスしたほうがいいだろう) 一応俺が使ってる(XP 32bit) ActivePerl-5.20.3.2003-MSWin32-x86-64int-299574.msi をダウンロードして保存していたファイルと比較してみたけど一致したから問題ないと思う あと、5.22.1も試してPerlとしては動いたので 現行ダウンロードできる5.22.3も大丈夫じゃないかな? (インストーラがexeに変わってるけど) あと俺が使えると言った5.22.1を何故使ってないかと言うと WSHから何故か正常に使えなかったので、使える5.20.3を使ってる https://amaten.com/ こんなサイトの情報をテキストか何かで取得したい LWP::Simple とかでは取ってこれない 何を使うと一番簡単にできる? >>602 XPで動くかは試してないけど、Strawberry Perlっていうのもあるよ どうしてもActivePerlじゃないとだめなの? おれ XP で Strawberry Perl つかってる ActivePerl はモジュールの対応が遅いから乗り換えた >>617 のところでActive Perlの古いのから最新まで全部ダウンロードできるじゃん それで解決だろ >>624 それだけだったらLinuxやFreeBSDなどを使うって方法もあるだろ? だからM$に金を払うのがいやだけど、MSのOSが好きという理由であるはずだ もしくはMS以外のOSがクソだっていう可能性もあるけど >>618 perlはもう進化が止まってるので、あんまり新しいことは出来ない 自分で作るなら別だけど rubyやpythonなら整ってる筈 >>618 もう見てないだろうけど HTML::TreeBuilder HTTP::Daemon LWP::UserAgent WWW::Scripter くらいでなんとかなると思うよ。簡単かどうかは知らんけど大体なんとかなってる。 最近はperlは余り聞かないな 中学生の時にはブームだったけど……。(何十年も前) 学校ではpython とかだと思う。C# java が主力? とにかく、滅多に聞かないな Perlは全然進化しないからな 一年ちょっと前に6がでて音沙汰なし 7はいつ出るんだ?って状態 >>634 > 実用性を重視するならJava一択 それって言語の実用性じゃなくて 人材的な意味での実用性だよな つまりJavaは色んな所で使われてる言語だから Javaできますって言っておけば採用されやすい。 自分が実用性がある人間になりたいならJava一択 言語なんかいくつ修得してもいいんだから、大人しくJava勉強しとけ 何がなんだか仕様に混乱するから3つまでしか習得出来ません 4つめ覚えるとなにかを忘れます 621 > むしろなぜXPを使ってるのか知りたい 動作確認だよ XPと10で動くならVistaでも7でも8でもでも動く可能性が高いから いちいち全OSを揃えて動作確認すると シロウトの趣味でアプリケーション開発するには荷が重すぎる いちいち全OSで動作させたいと思う理由は何? サポートが終了しているXPで動作する必要はないし Vistaも2017年4月までだ。シェアから考えれば切り捨てても十分だし 7と10で動作確認すればいいじゃん 俺の周りでは、いまだにNT3.5.1を使ってる取引先があるのだが。 用途を特定した専用マシンみたいなのは、特にOSを入れ替えずにずっと使うな 測定機器や実験機器の一部とか、何かの制御用とか ただ、そんなマシンは新しいソフトを入れたりもしないから、 互換性とかどうでもいい世界だけど 以前こちらでお世話になった顔文字のど素人です。 $ perl -p -e 's/(..)/$1 /g;' 123456 ↓ 12 34 56 恐縮ですが上記の逆(スペースの削除)をご指導願います。 00 06 fc 25 58 50 0a 00 54 92 31 03 49 46 88 d0 c6 ↓ 0006fc2558500a0054923103494688d0c6 よろしくお願いいたします _(_^_)_ とにかく学習しようという気がまったく見えないのが凄い 普通1時間以内に学習を完了してそうなものを、10日以上経ってるぞ active perlで、長いファイル名のあるフォルダに対して readdir すると、 エラーになって止まるんだけど、どうやって回避すればいいんだ エラーが返るとかじゃなくて実行自体が止まるので、とりあえず読んでみて、 とかが出来ない windowsのエラーじゃねぇの? とりあえずevalすれば実行は止まらないと思うけど >>653 ひょっとして、ファイル名にユニコード文字が混じったりしてない? readdirのユニコード版なら、こうゆうモジュールもある。 http://search.cpan.org/ ~xaicron/Win32-Unicode-0.26/lib/Win32/Unicode/Dir.pm それを使うと、既存のreaddir の挙動が変わるの? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる