Perlについての質問箱 30箱目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/03/14(水) 22:54:12"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc8.2ch.net/php/ )
CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。
http://www.perl.org/get.html
● 2006/12/21現在の最新版: 5.8.8
● 2006/12/21現在の開発版: 5.9.3
前スレ
Perlについての質問箱 29箱目
http://pc11.2ch.net/test/read.cgi/tech/1166708139/
リンク集は>>2-3
過去スレは>>4
0657デフォルトの名無しさん
2007/05/20(日) 17:58:21my @b = map "$_", @a[1..8];
0658デフォルトの名無しさん
2007/05/20(日) 18:14:52激しくトンクス!
そういえばfor(0..7)とか使ってました。
@a[1..8]という書き方があったとは。
0659デフォルトの名無しさん
2007/05/20(日) 18:23:29^これや^これの名前ってなんだっけ?
0660デフォルトの名無しさん
2007/05/20(日) 18:39:44なんか$でプレフィクスとか見つけたけど。
@は配列ArrayのAを表し
$は・・・なんだっけ?Sからはじまるなんかの単語じゃなかったっけ?
%は/の左の丸がキーで、/の右の丸が値を示すんだっけ?
なんかそんな感じ。
どうせ声出して読まないし気にするまでも無いような・・・
0661デフォルトの名無しさん
2007/05/20(日) 18:45:220662デフォルトの名無しさん
2007/05/20(日) 18:57:190663デフォルトの名無しさん
2007/05/20(日) 18:59:10sigil だと思う。
sigilsと複数形にすることも多いが
0664デフォルトの名無しさん
2007/05/20(日) 19:10:35どういったものなんでしょう。
役に立ちそうなサイトがあったら教えてください。
0665デフォルトの名無しさん
2007/05/20(日) 19:44:38あーそれそれ。さんくす
0666デフォルトの名無しさん
2007/05/20(日) 20:34:14友達が言ってたんですが他の言語だと20行くらいかかりそうな処理も1行で記述できるくらい魔法ちっくなことができるって聞いたんですが本当ですか?
0667デフォルトの名無しさん
2007/05/20(日) 20:51:05すべてが魔法なので紹介しきれません
0668デフォルトの名無しさん
2007/05/20(日) 21:07:490669デフォルトの名無しさん
2007/05/20(日) 21:14:040670デフォルトの名無しさん
2007/05/20(日) 21:31:150671デフォルトの名無しさん
2007/05/20(日) 21:36:440672デフォルトの名無しさん
2007/05/20(日) 21:46:12もっとやさしく!!
>>669
a + b; b + c; c + d; ... はい1行wwwwwとかは禁止なんです
>>670
もっとやらしく!!
0673デフォルトの名無しさん
2007/05/20(日) 22:03:30では、とっておきの電卓プログラムを紹介しようか。
C++で書くと、何十ステップも必要だろう。
while(<>){print eval($_)}
0674デフォルトの名無しさん
2007/05/20(日) 22:23:07カレントディレクトリ以下のファイルがすべて消えました!><
0675デフォルトの名無しさん
2007/05/20(日) 22:43:53きもい
0676デフォルトの名無しさん
2007/05/20(日) 22:50:560677デフォルトの名無しさん
2007/05/20(日) 22:55:32>>673をしたらキーボードからどんな文も実行できてしまうよな?
>>674を書いて実行してキーボード触らずにマウスで閉じたら何も起きないよな?
恐怖体験アンビリーバブー
0678デフォルトの名無しさん
2007/05/20(日) 22:56:200679デフォルトの名無しさん
2007/05/20(日) 23:18:110680デフォルトの名無しさん
2007/05/20(日) 23:30:26サブルーチンは、多少汚くても短くまとめたいし。
なんか良いサイト無い?
0681デフォルトの名無しさん
2007/05/20(日) 23:31:390682クロニクル ◆ob60wHXQlc
2007/05/20(日) 23:32:46Build 820 setup
の
CustomsetUP のところでInnstlationErroが出るんです。
初心者なのでわからないことがたくさんあります。
以前XPで何度かインストールしたのですが、VISTAになったとたんできなくて
苦労しております。どうかご教授お願いいたします。
0683デフォルトの名無しさん
2007/05/20(日) 23:34:48一子相伝も特殊技術だから。
0684デフォルトの名無しさん
2007/05/20(日) 23:45:25正規表現使ったほうが早いとかある?
0685デフォルトの名無しさん
2007/05/20(日) 23:48:100686デフォルトの名無しさん
2007/05/20(日) 23:51:35このスレの前の方だけでもいくつかあると思うよ。
過去ログ辿ればもっとあるし。
0687デフォルトの名無しさん
2007/05/21(月) 00:12:00(結城さんではなく回答者が時々アクロバティック)
0688デフォルトの名無しさん
2007/05/21(月) 15:57:0406898
2007/05/21(月) 16:50:18記述?だからと思いPERLの詳しくなればわかると思いこの板にきました。
PERLに強くなるにはなにを学べばいいですか?ラクダ本というのがいいとどっかで
見たのですが間違いないですか?
そもそもCGIを自由に使えるようになるのはPERLを詳しくなっても意味ないですか?
CGIを自由に扱えるようになりたいので勉強の仕方わかる方お願いします。
0690デフォルトの名無しさん
2007/05/21(月) 16:54:260691デフォルトの名無しさん
2007/05/21(月) 16:57:15> CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
> CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
> (WEBプログラミング板 http://pc8.2ch.net/php/ )
0692デフォルトの名無しさん
2007/05/21(月) 18:50:54向こうでも相手にされていない件についてw
0693デフォルトの名無しさん
2007/05/21(月) 19:01:22かわいそうだからマヂレスしてあげるよ
勉強しなほうが身のため
06948
2007/05/21(月) 19:01:300695デフォルトの名無しさん
2007/05/21(月) 19:01:4806968
2007/05/21(月) 19:02:41なぜ!?
0697デフォルトの名無しさん
2007/05/21(月) 19:03:4506988
2007/05/21(月) 19:07:37悲しいこと言うなぁ・・
0699デフォルトの名無しさん
2007/05/21(月) 19:08:320700デフォルトの名無しさん
2007/05/21(月) 19:11:060701デフォルトの名無しさん
2007/05/21(月) 19:37:260702デフォルトの名無しさん
2007/05/21(月) 19:39:59CGI を覚えるより何より、ここの使い方をまず真鍋
0703デフォルトの名無しさん
2007/05/21(月) 19:50:230704デフォルトの名無しさん
2007/05/21(月) 21:19:43マジレスするのもどうかと思うが、
CGIを勉強したいならラクダ本よりネズミ本がオヌヌメ。
Perlをきちんと習得したいなら、ラクダ本よりリャマ本をまず嫁。
リャマ→ラクダ→ネズミの順で読むといい。
後はWebProg板逝け。
0705デフォルトの名無しさん
2007/05/21(月) 21:23:4507068
2007/05/21(月) 21:24:520707デフォルトの名無しさん
2007/05/21(月) 21:38:57タダで読めるPerl本
ttp://www.perl.org/books/library.html
ネズミ(初版)
ttp://www.oreilly.com/openbook/cgi/
ただリャマだけは小遣い溜めてでも買うべきだと思うんです
0708デフォルトの名無しさん
2007/05/21(月) 23:06:21ラクダも読み物として面白いけど、Cookbookのほうが実践的なテクニックを身に付けられるんでないかな。
0709デフォルトの名無しさん
2007/05/21(月) 23:57:50なんつーか、その、K○NTクローンが増えても困るっつーか
0710デフォルトの名無しさん
2007/05/22(火) 00:20:380711デフォルトの名無しさん
2007/05/22(火) 00:38:13○ャ○から入って、○○○と○○○○○○○○を併用さ。
ラクダ?○○○○○○c で十分
…中途半端じゃない伏せ字も頭悪い。
0712デフォルトの名無しさん
2007/05/22(火) 00:52:260713デフォルトの名無しさん
2007/05/22(火) 00:56:24> ○ャ○から入って、○○○と○○○○○○○○を併用さ。
ジャバ、コボル、N88BASIC?
> ラクダ?○○○○○○c で十分
わがんね。
本題のほうは「なんでバレバレの伏せ字を使う人がいるのか」が昔から不思議。
0714デフォルトの名無しさん
2007/05/22(火) 01:04:420715デフォルトの名無しさん
2007/05/22(火) 01:08:17あえて理由付けするなら、検索に引っかからないため。
まぁ、やってる方の心理としては○○だと思うがw
0716713
2007/05/22(火) 01:20:11ボケが思いつかなくて「わがんね」でした。手間をかけさせてごめんなさい。
>>715
うーん、検索ですか。なるほど。
でも、△△△にする○○の大半は××なだけなんでしょうね。
0717デフォルトの名無しさん
2007/05/22(火) 01:51:290718デフォルトの名無しさん
2007/05/22(火) 02:37:09useを使用し、下位ディレクトリにあるモジュールを読み込むには
use ディレクトリ名::モジュール名;
なのはどの初級者本にも書いてあるのですが、
上位ディレクトリにあるモジュールの読み込み方が分かりません。
パスはどう書けばよろしいのでしょうか?
0719デフォルトの名無しさん
2007/05/22(火) 03:48:180720デフォルトの名無しさん
2007/05/22(火) 07:22:32十代後半の女オタクの馴れ合いみたいで気持ち悪いよね。
0721デフォルトの名無しさん
2007/05/22(火) 08:20:440722デフォルトの名無しさん
2007/05/22(火) 13:39:110723デフォルトの名無しさん
2007/05/22(火) 15:24:140724デフォルトの名無しさん
2007/05/22(火) 15:43:310725デフォルトの名無しさん
2007/05/22(火) 15:58:390726デフォルトの名無しさん
2007/05/22(火) 16:30:10ありがとうございました。できました。
0727デフォルトの名無しさん
2007/05/22(火) 18:07:33爆笑
0728デフォルトの名無しさん
2007/05/22(火) 18:08:03同じプログラム内で再度、標準入力から取得することは可能ですか?
既存のプログラムに、入力チェックを追加したいのですが、2回目はデータが空になります(当たり前?
一応、seekしてみたのですが、うまく戻りそうにありません
バカな質問している気がしていますが、「そんなことできるワケねぇだろ、バカ」でも良いのでアドバイス下さい
0729デフォルトの名無しさん
2007/05/22(火) 18:11:190730デフォルトの名無しさん
2007/05/22(火) 18:23:30>>1嫁
0731デフォルトの名無しさん
2007/05/22(火) 18:25:33過去に戻れるなんて素敵だぜ
0732デフォルトの名無しさん
2007/05/22(火) 18:26:16すみませんでした
そちらで質問してみます
0733デフォルトの名無しさん
2007/05/22(火) 18:41:44このコメントだけで十分な説明になってるな
0734デフォルトの名無しさん
2007/05/22(火) 19:03:040735デフォルトの名無しさん
2007/05/22(火) 20:34:550736デフォルトの名無しさん
2007/05/22(火) 20:36:070737デフォルトの名無しさん
2007/05/22(火) 20:45:580738デフォルトの名無しさん
2007/05/22(火) 21:49:02起動が多少遅くなるので
別な方法がないか教えてもらえませんか
使用用途としては
下記のようなものです
単にifで分けると モジュール部もすべて読み込むようなので
両方ともないとエラーになりました
evalで囲めばそれっぽくうごきますが
しっくりきません。
#ifdef HOGEHOGE
use HOGEHOGE;
〜〜〜
#else
use HOGEHOGE2;
〜〜〜
#endif
0739デフォルトの名無しさん
2007/05/22(火) 22:51:27UNIVERSAL::require 使えば解決するようなコトじゃないかな?
0740デフォルトの名無しさん
2007/05/22(火) 22:52:13use $ENV{'HOGEHOGE'};
とかして環境変数HOGEHOGEから渡せないかなと思ったがダメだった。
0741738
2007/05/22(火) 22:58:53趣旨的には 740のとおり useだけじゃなくて
汎用的に使える方法がないかと(まぁ -Pで出来るんですがあんまり標準的じゃないような気がして)
目的としては、環境がある程度違っても
ソースを複数管理するのは面倒なので同一ソースで動かしたいです
下記のようなのも出来ると非常に助かります
#ifdef hogehoge
while(1) {
#endif
〜〜〜〜〜
#ifdef hogehoge
}
#endif
0742デフォルトの名無しさん
2007/05/22(火) 23:39:450743デフォルトの名無しさん
2007/05/22(火) 23:41:58かと思ったけどなんか違うよね
0744デフォルトの名無しさん
2007/05/23(水) 00:20:43-P 使うからには、pure perl じゃなく C 関係?
それとも pure perl でホスト毎に挙動を変更したいの?
前者だったら、 Inline::C と後述を噛み合わせて…
後者だったら、ベタだけど Sys::Hostname で hostname ゲットして
BEGIN{if ( $hostname ...){}else{} } あたり?
後者なら、もっとべたべたにソース全般で挙動を分けられるし、
実際やってるけど、前者だったらやろうと云う気にもならぬ。
って素人の口出しすまぬ。
0745デフォルトの名無しさん
2007/05/23(水) 00:29:530746デフォルトの名無しさん
2007/05/23(水) 00:52:02ソコでSys::Hostnameは使っているけど、もっと良い手があれば知りたいものだ
0747デフォルトの名無しさん
2007/05/23(水) 01:16:42その環境変数によってunix系の時と動作変えてる。
0748738
2007/05/23(水) 08:38:37当面の目標としては
PurePerlでmod_perl2(ModPerl::RegistryPrefork)とFastCGIで
同一ソースを使えるようにしたいと思ってます
FastCGI対応にするためには
読み込みモジュールの差し替え(CGI->CGI::Fast)とループ処理が増えるので
738,741のようなことができないかなと思った次第です、
良い方法がないかなと
0749デフォルトの名無しさん
2007/05/23(水) 09:35:25Catalystあたりを参考にしれ
0750デフォルトの名無しさん
2007/05/23(水) 09:49:31Rubyだとわりと簡単にFastCGI対応できるみたい。
Perlでも同じようにできないかな?
既存のCGIを変更無しでFastCGIに
ttp://sugi.nemui.org/wiki/%B4%FB%C2%B8%A4%CECGI%A4%F2%CA%D1%B9%B9%CC%B5%A4%B7%A4%C7FastCGI%A4%CB
0751デフォルトの名無しさん
2007/05/23(水) 09:55:29Catalyst::Engine::FastCGI
http://search.cpan.org/~mramberg/Catalyst-Runtime-5.7007/lib/Catalyst/Engine/FastCGI.pm
CGI::Application::FastCGI
http://search.cpan.org/~naoya/CGI-Application-FastCGI-0.02/lib/CGI/Application/FastCGI.pm
0752デフォルトの名無しさん
2007/05/23(水) 12:07:100753デフォルトの名無しさん
2007/05/23(水) 14:12:31あるファイル(数万行の数字データ)の上から1行ずつ順番に読み込んで
最終行になるとまた1行目に戻って・・・という作業をしたいのです
途中でプログラムを閉じて再開したときも次の行から開始が可能であれば
もう言うことナシですが,残念ながら自分では何とも出来ず
丸2日間ネット上で調べに調べ
srand();
open(FILE, "data.txt");
rand($.) < 1 and $line = $_ while <FILE>;
close(FILE);
$line =~ s/\n//g;
とランダムで1行読み込む仕様で妥協するのが限界でした
もし上記作業がperlで可能でしたら申し訳ないですが
教えていただけないでしょうか
可能な方いらっしゃいましたら どうかお願いします。
0754デフォルトの名無しさん
2007/05/23(水) 14:13:460755753
2007/05/23(水) 14:27:55イカのような感じで半永久的に作業が続くわけでして・・・^^;
print <<"_HTML_";
Content-type: text/html
<html><head>
<meta http-equiv="refresh" content="5; url=aaa.cgi">
0756デフォルトの名無しさん
2007/05/23(水) 14:34:48■ このスレッドは過去ログ倉庫に格納されています