Perlコーディング初心者質問スレ Part 63
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2011/09/09(金) 18:11:49.71ID:???【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >>2 以降
前スレ http://hibari.2ch.net/test/read.cgi/php/1295170172/
0002nobodyさん
2011/09/09(金) 18:12:10.08ID:???Perlプログラミング講座: ttp://www.site-cooler.com/kwl/perl/
[本]
リャマ: ttp://www.oreilly.co.jp/books/4873111269/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://ascii.asciimw.jp/books/books/detail/4-7561-3057-7.shtml
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/
[オンラインマニュアル]
最新のドキュメント: ttp://perldoc.perl.org/
perldoc きまぐれ訳: ttp://fleur.hio.jp/perldoc/
perldoc.jp: ttp://perldoc.jp/
[モジュール]
CPAN: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/
[テクニック]
Perlメモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perlの小技: ttp://homepage3.nifty.com/hippo2000/perltips/
[Perl5.8Unicodeメモ]
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0004nobodyさん
2011/09/12(月) 12:01:09.82ID:???{
key1 => 123,
key2 => 456,
},
{
key1 => 324,
key2 => 135,
},
{
key1 => 123,
key2 => 135,
},
続く...
]
こんな感じの配列をソートするにはどういう方法が最適でしょうか?
key1で昇順にソートして、key1が同じ場合はkey2で降順にソートします。
key2も同じ場合はどちらが先になってもかまいません。
0005nobodyさん
2011/09/12(月) 12:40:13.04ID:???0006nobodyさん
2011/09/12(月) 12:51:03.86ID:???0008nobodyさん
2011/09/12(月) 19:06:55.08ID:???基礎の基礎じゃねーか。
0009nobodyさん
2011/09/12(月) 21:12:13.88ID:sQBBrYdo読み込んで表示のみ=ロックの必要はない
読み込んだデータを加工して書き込む場合=
ファイルロック1
ファイル読み込み
データ加工
ファイル書き込み
ファイルロック1の解除
というようにするが正解だろ
読み込んで表示のみにロックする必要あったら
普通のHTMLファイルだってロックしなきゃならんだろ
0010nobodyさん
2011/09/12(月) 21:20:12.75ID:???flockとはなんだったのか
0011nobodyさん
2011/09/12(月) 21:28:34.15ID:???>>1
【総合】 Webprog板質問雑談スレッド 1
http://hibari.2ch.net/test/read.cgi/php/1131016915/
0012nobodyさん
2011/09/12(月) 21:37:37.12ID:???0013nobodyさん
2011/09/15(木) 00:40:46.86ID:???書き込みロックと読み込みロックが
あることぐらい知ってるだろ。
0014nobodyさん
2011/09/15(木) 12:48:03.24ID:???情報を取得しようとしています。
下記だと@はヘッダ?の情報が出てきますが、Aは何も出てきません。
どこか間違えているのでしょうか?
my $url = 'http://example.com';
my $formdata = ['id' => '***', 'pass' => '***'];
my $request = POST($url, $formdata);
my $ua = LWP::UserAgent->new;
my $res = $ua->request($request);
print $res->as_string; #@
print $res->content; #A
#my $tree = HTML::TreeBuilder->new;
#$tree->parse($res->content);
#$tree->eof();
0015nobodyさん
2011/09/15(木) 13:12:03.71ID:???content()はbodyを返す
example.comを見るならば、Content-Length: 0なんで当然content()は空になる
001614
2011/09/15(木) 13:39:08.06ID:???example.comは仮で書いただけなんですが、そのことを書いていませんでした。
失礼しました。
コード的には間違っていないようなので、別の要因を探ってみます。
ありがとうございました。
0017nobodyさん
2011/09/18(日) 03:39:18.09ID:bhwW9jAXforeach $data (@isbn){
if(length($data) != 13){
$error_message = "length error";
break;
}
if($data =~ /[^0-9]/){
$error_message = "charactor error";
break;
}
}
$dataに入っている数字が13文字以外の時と、0-9の数字以外の時に
#error_messageにエラーを書き込んでforeachループを抜けるようにしたいのですが、なぜか13文字&数字だけの時にも両ifともtrueになってしまいます。
先に述べている動作をさせたい時の条件の書き方を教えていただけないでしょうか?
0018nobodyさん
2011/09/18(日) 03:40:47.27ID:bhwW9jAXif(length($data) != 13){
$error_message = "length error";
break;
}
if($data =~ /[^0-9]/){
$error_message = "charactor error";
break;
}
}
見づらいだろうので修正
0019nobodyさん
2011/09/18(日) 04:16:55.44ID:???0020nobodyさん
2011/09/18(日) 04:18:05.84ID:bhwW9jAX失礼しました・・・。
0021nobodyさん
2011/09/18(日) 04:20:28.78ID:???for my $data (@isbn){
if (length $data != 13){
$error_message = "length error";
last;
}
if ($data !~ /^\d+$/){
$error_message = "charactor error";
last;
}
}
次から >>1 には「use strict; use warnings; を必ず使う事」とでも書いとけ。
0022nobodyさん
2011/09/18(日) 06:57:46.48ID:???ってことで break が自作の関数だったりしなくて、ループから抜けることを意図としてるなら
last としませう。
0023nobodyさん
2011/09/18(日) 07:08:32.40ID:???break Break out of a "given()" block.
This keyword is enabled by the "switch" feature: see feature
for more information. Alternately, include a "use v5.10" or
later to the current scope.
0024nobodyさん
2011/09/18(日) 08:49:12.63ID:???Perl以外のほとんどの言語はcontinueやbreakだから
他の言語を先に知っててPerlにあまり馴染みがないと
最初のうちは間違っちゃったりするよね
Perl / C,JavaScript,PHP,Ruby,Python,etc.
next / continue
last / break
0025デフォルトの名無しさん
2011/09/18(日) 09:43:41.96ID:???よさがじわじわと分かる。continue, break だとあいまい
な感じがして、(単語からは)何をしてくれるのか想像しに
くい。
0026nobodyさん
2011/09/18(日) 10:47:25.20ID:???0027nobodyさん
2011/09/18(日) 12:27:04.36ID:???0028nobodyさん
2011/09/18(日) 12:29:59.21ID:???0030nobodyさん
2011/09/18(日) 12:47:06.08ID:???0031nobodyさん
2011/09/18(日) 15:24:44.69ID:???0032nobodyさん
2011/09/18(日) 18:47:48.04ID:???現在SQLを勉強するためにPERLを使いMYSQLにつなぐ練習をしています
DBIを使用してデータベースへの接続およびテーブルを作成することはできました。
このデータを更新する為にユーザーから ユーザーIDおよびパスワード データを新規ユーザー登録フォームなどから受け取るにはどうしたらいいのか、
またデータベースから受け取ったデータから全体のソートをかけたい全表示したい場合 どうしたらいいのかわからず困っています
かってですがURLのところに?userid=foo&password=fooのようにはできるだけ表示しない方向でよろしくお願いします
0033nobodyさん
2011/09/18(日) 20:09:22.61ID:???>>1
http://www.ifdefdebug.com/cgi_introduction/
http://perldoc.jp/docs/modules/CGI-3.49/CGI.pod
依頼されたツールを誰かが作るスレ
http://hibari.2ch.net/test/read.cgi/php/1078997682/
金出すからスクリプト作ってよvol.1
http://hibari.2ch.net/test/read.cgi/php/1150508106/
DBの絡んだWEB制作の相場
http://hibari.2ch.net/test/read.cgi/php/1004437935/
手伝ってくれるかた募集
http://hibari.2ch.net/test/read.cgi/php/1083303786/
【総合】 Webprog板質問雑談スレッド 1
http://hibari.2ch.net/test/read.cgi/php/1131016915/
0034nobodyさん
2011/09/18(日) 20:29:52.84ID:???すみません・・・リンクの中を見るとフォームのデータはこれでできそうですね
テンプレを読まず・・・申し訳ない
0035nobodyさん
2011/09/19(月) 03:55:08.18ID:tSer8QMIXML::Simpleを使ってXMLを解析しているのですが、 <Creator Role="イラスト">名前</Creator>
のような属性(エレメント?)付きの値を取り出すにはどうすればいいのでしょうか?
普通に~~~->{Creator}->{Role}とすると属性の中身?の"イラスト"は取り出せるのですがその先が分かりません・・・。
もしかして::Simpleでは取り出せないのでしょうか?
0036nobodyさん
2011/09/19(月) 05:24:45.14ID:tSer8QMI~~~{creator}->{content}で中身を取り出すことが出来ました
0037nobodyさん
2011/09/19(月) 07:45:02.88ID:tSer8QMI現在Padreで開発しているのですが、なぜかPadre上ではうまく動いているのですが、
サーバーにUPすると500エラーを吐いてしまいます。
確認してみた所、my $ua = LWP::UserAgent->new();が原因でエラーを吐いているようで、
ライブラリ自体はちゃんと所定の場所にあり、パーミッションも他のライブラリと同じ設(705)で問題は無いはず。
そもそも頭のuse LWP::UserAgent;ではエラー吐いてないのでライブラリ自体は読み込めてるようです。
エラーの無い状態で上記のmy $ua = LWP::UserAgent->new();を追記した時点でエラーになるのですが、
これってただnewしただけでも他の物に影響を与える物なのでしょうか?
0038nobodyさん
2011/09/19(月) 09:21:31.99ID:???http://perldoc.jp/docs/perl/5.10.1/perlfaq9.pod
0039nobodyさん
2011/09/19(月) 13:08:32.75ID:tSer8QMIすいません、そこは既にチェックした後だったのですが一向に解決していません
LWP::UserAgentは止めて、LWP::Simpleを使おうとするも今度はuseした時点でエラー・・・。
use LWP::Simple (); にして、後でgetすればエラーでないというのも見かけましたが関係なくエラーが。
0040nobodyさん
2011/09/19(月) 13:24:50.46ID:???0041nobodyさん
2011/09/19(月) 14:01:11.27ID:tSer8QMICan't locate HTTP/Config.pm in @INC
エラー先を見たらUserAgent.pm内の require HTTP::Config; これがエラーの原因のようです
0042nobodyさん
2011/09/19(月) 16:11:08.06ID:tSer8QMILWP:;UserAgent自体が使うファイルも色々CPANから拾ってきておかなきゃだめだったようです・・・というか外部ソース依存多すぎる
そして私の場合、レンタルスペースを利用している為、XML::Parserのコンパイルとか出来ないんですがこの場合どうしたらいいんでしょうか・・・?
0043nobodyさん
2011/09/19(月) 16:24:36.58ID:???> この場合どうしたらいいんでしょうか・・・?
・管理者にインストールしてもらう
・設置先と同じ環境を手元にも構築してコンパイルしたものを持っていく
・設置先で利用できる形にまとめてくれている人を探して一式もらう
・Pure Perl なモジュールのみを使うよう書き換える
・サーバを替える
いずれにしてもスレ違い。
0044nobodyさん
2011/09/19(月) 16:30:26.87ID:???0045nobodyさん
2011/09/19(月) 18:25:25.97ID:???#そして次は「すいません、できないと思ってたけどコンパイルできました」とか書き込まれそうな予感
0046nobodyさん
2011/09/19(月) 20:13:19.63ID:tSer8QMI結局 XML::UserAgent も XML::Simple も使わずに済むPurePerlな XML::TreePP を使う事にしました。
こういう放置は本当はあまりよくないんでしょうけど、とりあえず完成させたいもので、とりあえず後で再考する事に。
失礼しました。
0047nobodyさん
2011/09/19(月) 20:32:26.25ID:???> こういう放置は本当はあまりよくないんでしょうけど、とりあえず完成させたいもので、とりあえず後で再考する事に。
いえいえ、良い選択だと思います。ご健闘を。
0048nobodyさん
2011/09/19(月) 23:13:46.60ID:???たとえshellが使えなくともtelnet.cgiみたいなのを使って
コンパイルすればいいのだ。
サーバーの環境を特定し、それに近い環境で
自宅コンパイルしたものをアップする方法もある。
諦める必要はないぞ!
0049nobodyさん
2011/09/20(火) 00:23:18.16ID:VRYqCB7t板の中のスレの内容を表示しようというところまできたんですが、カウンターの i が動いていないような感じで、同じスレ(dat)が何回も表示されてしまいます。
ほかにもツッコミどころがあったら教えてください。
ソースは次のレスです。
0050nobodyさん
2011/09/20(火) 00:24:28.62ID:VRYqCB7tuse LWP::UserAgent;
use HTTP::Request::Common;
$url = "http://hidar.2ch.net/news4vip/subject.txt";
$durl = "http://hidari.2ch.net/news4vip/dat/";
&getData($url);
$threadlist = $response->content;
while($threadlist =~ m|\n(.*?)\.dat<>|g){
push(@dat, $1);
}
for ($i=0; $i<=$#dat; $i++){
$url = $durl . $dat[i] . ".dat";
&getData($url);
$content .= $response->content . "\n";
}
print $content;
sub getData
{
$ua = LWP::UserAgent->new;
$ua->agent('');
$request = GET($_[0]);
$response = $ua->request($request);
}
0051nobodyさん
2011/09/20(火) 00:41:47.24ID:VRYqCB7t$url = "http://hidar.2ch.net/news4vip/subject.txt";
$durl = "http://hidari.2ch.net/news4vip/dat/";
はそれぞれ
$url = "http://hibari.2ch.net/news4vip/subject.txt";
$durl = "http://hibari.2ch.net/news4vip/dat/";
でした。別なURLでテストしてたのをごまかしたので、URLが間違っていたせいじゃないです。
ていうかdatディレクトリがそのまま見られるみたいだからそっちから抽出したほうがよかったかな・・・
0053nobodyさん
2011/09/20(火) 00:54:00.21ID:VRYqCB7tできました!
ありがとうございます!!!
0054nobodyさん
2011/09/20(火) 02:27:48.40ID:???use warnings;
この2つは必須!
0055nobodyさん
2011/09/20(火) 21:27:29.45ID:P4zYemZJ初心者なのですが、どなたか教えてください。
サーバーに最新のapache(onWindowsXP)をインストールし、Activeperl(最新版)
によるcgiで、Win32::OLEをつかって、
サーバー側でAccess起動→マクロを走らせる→Access閉じる
を行いたいのですが、上手くいきません。
同じPERLソースで、AN HTTPD だと上手くいくので、apacheの設定の問題だと思うのですが、
どこをどう設定するのかが分かりません。
0056nobodyさん
2011/09/20(火) 21:29:54.54ID:P4zYemZJちなみにソースは
# Accesオブジェクトを生成、起動
my $access = CreateObject Win32::OLE 'Access.Application' || die "Cannot create Access object\n$!\n";
my $mdb = 'C:/hoge.mdb';
$access -> {'Visible'} = 1;
$access -> OpenCurrentDatabase($mdb);
$access -> DoCmd -> RunMacro('hoge');
$access-> quit();
undef $access;
です。
0057nobodyさん
2011/09/20(火) 21:30:56.13ID:???>>1
http://perldoc.jp/docs/perl/5.10.1/perlfaq9.pod
Apache〜嗜みとして〜 Part3
http://hibari.2ch.net/test/read.cgi/php/1043851302/
005855
2011/09/20(火) 21:33:07.43ID:P4zYemZJ現象としては、ログにもエラーはなく、サーバー側でタスクマネージャで確認すると
Accessが起動していることまでは確認できるのですが、そのまま止まってしまいます。
タスクマネージャーからAccessを強制終了すると、それ以後のperlスクリプトが処理されるようです。
どなたか同じようなご経験をお持ちの方はおられませんでしょうか。
宜しくお願い致します。
0059nobodyさん
2011/09/20(火) 21:57:09.80ID:???my $access = CreateObject Win32::OLE 'Access.Application' || die "Cannot create Access object\n$!\n";
は
my $access = Win32::OLE->CreateObject('Access.Application' || die "Cannot create Access object\n$!\n");
と等価なので CreateObject() が偽を返しても die しない。
http://perldoc.jp/docs/perl/5.14.1/perlop.pod#Operator32Precedence32and32Associativity
>>58
「それ以後」がどのステップを指していて処理自体は期待通りに終わっているのかどうか不明なので
同じ症状かは分からんが、「perl Win32::OLE access」でググれば
http://www.kaimei.org/read/internal/perl_w32
> 私が Win32::OLE から Excel へアクセスするプログラムを書いてみたところ、
> Perl スクリプトからだと問題ないのに CGI からこれを呼び出すと失敗するケースがあった。
> きちんとした原因まで把握できていないのだが、少なくともオープンする Excel ファイルのパスは
> / ではなく \ で区切らないとアプリケーション・オブジェクトの取得に失敗するようである。
という話が出てくる。
0060nobodyさん
2011/09/21(水) 12:11:47.99ID:???それぞれの WAF の特色とか違いとかが分かるサイトとかあるのでしょうか?
ご教示いただければと思います。
0061nobodyさん
2011/09/21(水) 15:19:36.21ID:???それをまとめるスレッドリストファイルがある場合のロックについて
ファイルロック1
スレッドNファイルへの書き込み
スレッドリストファイルへの書き込み
ファイルロック1の解除
というようにしなければならないので
例えばスレッド1にだれかが書き込んでいる最中は他スレッドでも書き込みができない
ということになる。
ということで間違いないんですか?
それとスレッドを誰かが見るだけの場合でも
ファイルロック1
スレッドNファイルの読み込み
スレッドリストファイルの読み込み
ファイルロック1の解除
としなければならないので
誰かが任意のスレッドを見ている間はどこのスレッドにも書き込めない
ということでいいんでしょうか?
そうするとロックかかりまくりじゃないんですか?
0062nobodyさん
2011/09/21(水) 15:57:23.72ID:???0063nobodyさん
2011/09/21(水) 16:36:39.63ID:???それぞれのファイルにロックすると
スレッドNファイルには書き込まれて
スレッドリストファイルにロックがかかるという場合も考えられる
そうするとデータの連動がずれる
0064nobodyさん
2011/09/21(水) 16:43:12.02ID:???マルチスレッドプログラミング相談室 その8
http://hibari.2ch.net/test/read.cgi/tech/1253521167/
0066nobodyさん
2011/09/21(水) 20:45:57.38ID:???ロックかかりまくりとはいうけど
実際は各リクエストがケンカしないように順番に処理されていくわけだから特に問題はないだろ。
0067nobodyさん
2011/09/21(水) 21:52:54.67ID:???そいつが全部取り仕切るように動かせばいいんだ。疑似マルチタスクみたいに。
0068nobodyさん
2011/09/22(木) 00:58:45.67ID:???・・という話ではない、これ?
0069nobodyさん
2011/09/22(木) 01:17:49.95ID:???0071nobodyさん
2011/09/22(木) 12:59:33.86ID:nJD1QeKSPerlで2chの特定のキーワードのスレを自動取得するCGIを改造したいのですが、
#板名「@BoadName」にある、スレッド名に「$KeyWord」を含む板の一覧を表示する。
$BoardName[0] = "大規模MMO";
$BoardName[1] = "ネトゲサロン";
$BoardName[2] = "ネットwatch";
$Keyword = "●○";
この条件のところで、大規模MMO板だけでなく、例えば
ニュー速等複数の板を指定するにはどういう風にコードを書き換えれば良いでしょうか?
なるべく簡単な方法を教えてください。
スクリプト
http://aceof.s57.xrea.com/?p=sp
007371
2011/09/22(木) 13:39:16.30ID:nJD1QeKS…?どうやるのでしょうか?
COBOLは昔習いましたが…
条件のところの
$BoardName[0] = "大規模MMO"; を
A(大規模MMO) AND B(ニュー速) のような条件にしたいのですが、
parlでの表記が分かりません。
コードを教えてください。
007471
2011/09/22(木) 13:54:59.74ID:nJD1QeKS$BoardName[0] = "大規模MMO" AND "涙目ニュース";
ではエラーになりますよね??
0075nobodyさん
2011/09/22(木) 14:45:57.55ID:???$BoardName[1] = "ネトゲサロン";
$BoardName[2] = "ネットwatch";
$BoardName[3] = "ニュース速報";
$BoardName[4] = "WebProg";
でいいんじゃないかな?
Socket って使ったことないからわかんないけど BoardName で追ってみると
http://www.ff.iij4u.or.jp/~ch2/bbsmenu.html
↑ここから $BoardName[n] でURL取ってるみたいだし
確認してないけど
007671
2011/09/22(木) 15:29:52.18ID:nJD1QeKSすみません、基本的に大きな勘違いをしていました
$BoardName[0] = "大規模MMO"; 板名
$BoardName[1] = "ネトゲサロン"; スレット名
$BoardName[2] = "ネットwatch"; ?
かと思っていましたが、全部板名で、番号を増やしていけばいいだけですよね^^:
で、
$Keyword = "●○"; の所を2〜3個指定したいんですが、
複数指定したい場合はどう書けば良いのでしょうか?
$Keyword = "●○" "●▲" "××";
$Keyword = "●○" AND "●▲";
でしょうか?
ANDの代替がぐぐっても分かりません・・・
ちなみにスレ一覧のURLは移動してましたので書き換えます。
0077nobodyさん
2011/09/22(木) 15:44:33.61ID:???【 スクリプト改造依頼スレ 】(丸投げ) part8
http://hibari.2ch.net/test/read.cgi/php/1314546533/
★三 【 スクリプト改造工房 PART 9 】 ★三
http://hibari.2ch.net/test/read.cgi/php/1143834740/
金出すから改造してよvol.3
http://hibari.2ch.net/test/read.cgi/php/1162147035/
007871
2011/09/22(木) 16:01:22.71ID:nJD1QeKSありがとうございます。
あと、条件を複数指定する場合にどう記述すれば良いかだけ教えていただければ
十分なのですが…。
$Keyword = "●○" "●▲" "××";
$Keyword = "●○" AND "●▲";
でしょうか?
それとも $Keyword = "●○","●▲";
?
0079nobodyさん
2011/09/22(木) 16:13:15.01ID:???COBOLをやってたというのがよく伝わってくる思考だw
$Keyword は GetData で
if (/$Keyword/){
というふうに正規表現で使われてるから論理演算子は使えないと思われ
$Keyword を @Keyword にしていっぱい入れられるようにして正規表現で | を使うか
if じゃない関数を使うかじゃないかな〜
0080nobodyさん
2011/09/22(木) 18:12:10.54ID:5FtK50r8読み込んだデータを更新して書き込むページ=
ファイルロック1
ファイル読み込みモードでオープン
ファイルを配列に読み込み
ファイルを閉じる
データ更新
ファイル書き込みモードでオープン
更新したデータをファイルに書き込む
ファイルを閉じる
ファイルロック1の解除
これでいいはず
仮に読み込んで表示だけのページを
ファイルロック1
ファイルを読み込みモードでオープン
データを配列に入れる
ファイルを閉じる
ファイルロック1の解除とすると
表示するだけのページを開く間は書き込みができなくなるから
そうすると書き込める隙がなかなかない
0081nobodyさん
2011/09/22(木) 19:43:11.98ID:7t8BkGQUuse warnings;
my @city = ("東京", "大阪", "名古屋");
delete($city[0]);
print "@city";
こんな簡単なので Use of unitialized value in join or string at *** line 6. っていう警告が出たんですが、どうしてですか?
それに Use of unitialized ... というエラーしょっちゅう見かけますが、調べてみてもよくわかりませんでした。
教えてくださいm(_ _)m
0082nobodyさん
2011/09/22(木) 19:52:11.16ID:???とりあえずexcite翻訳から初めてみたらどうでしょうか
0083nobodyさん
2011/09/22(木) 20:01:45.61ID:???http://perldoc.jp/docs/perl/5.10.0/perldiag.pod
0084nobodyさん
2011/09/22(木) 20:15:05.37ID:7t8BkGQUありがとうごさいます。
@city = grep($_ ne "", @city);
で $city[0] を消しても残ってたので不便な関数だなと思いました。
undef の値を消すような操作をすればいいんですね。
0085nobodyさん
2011/09/22(木) 20:16:16.72ID:???0086nobodyさん
2011/09/22(木) 21:48:02.28ID:???shift @city;
要素をずらさずに $city[0] だけ消したいなら
$city[0] = "";
0087nobodyさん
2011/09/22(木) 21:53:14.20ID:???0088nobodyさん
2011/09/22(木) 22:07:16.08ID:???http://perldoc.jp/func/delete
http://perldoc.jp/func/undef
0089nobodyさん
2011/09/22(木) 23:43:44.90ID:???巨大な配列に対して splice すると、すごく遅そう・・・
0090nobodyさん
2011/09/22(木) 23:56:59.38ID:???Perl処理系のソースを見ずに言うが、
そのへんはパフォーマンスがガタ落ちにならん程度にはうまいこと処理してるだろうと思う。
0091nobodyさん
2011/09/23(金) 00:35:13.51ID:???delete $array[$n] は要素を削除するのではなくて、むしろ undef $array[$n] に近いんだから。
0092nobodyさん
2011/09/23(金) 00:37:24.81ID:???0093nobodyさん
2011/09/23(金) 00:38:06.92ID:???誤読すんなよ。
(特殊挙動の切り詰めの事を想定してるなら別だが)
splice で対処しろってのは、要素を本当に削除するケースに関してだ。
@arr = 1 .. 5 ; => @arr = qw( 1 2 5 );
delete の代りなら、
splice @arr, 2, 2, (undef) x 2 なんてしなくても
@arr[2,3] = (undef)x2 ;なりの方法があろう。
0094nobodyさん
2011/09/23(金) 01:21:24.31ID:???spliceが一番遅かったけど大きな速度差は出なかった
0096nobodyさん
2011/09/23(金) 07:44:14.40ID:???cmpthese timethese ( undef, {
delete => sub{ my @arr = ARRAY ; delete @arr[ 99999 .. 999999] },
splice => sub{ my @arr = ARRAY ; splice @arr, 99999, 900000, (undef) x 900000 },
slice => sub{ my @arr = ARRAY ; @arr[99999 .. 999999] = (undef) x 900000 }
});
__DATA__
ARRAY => (q{x}) x 1000000
Benchmark: running delete, slice, splice for at least 3 CPU seconds...
delete: 3 wallclock secs ( 2.91 usr + 0.15 sys = 3.06 CPU) @ 2.94/s (n=9)
slice: 4 wallclock secs ( 3.17 usr + 0.14 sys = 3.31 CPU) @ 2.72/s (n=9)
splice: 3 wallclock secs ( 3.06 usr + 0.19 sys = 3.25 CPU) @ 3.08/s (n=10)
Rate slice delete splice
slice 2.72/s -- -8% -12%
delete 2.94/s 8% -- -4%
splice 3.08/s 13% 5% --
ARRAY => 1 .. 1000000
Benchmark: running delete, slice, splice for at least 3 CPU seconds...
delete: 3 wallclock secs ( 3.12 usr + 0.00 sys = 3.12 CPU) @ 12.82/s (n=40)
slice: 3 wallclock secs ( 3.02 usr + 0.01 sys = 3.03 CPU) @ 6.93/s (n=21)
splice: 3 wallclock secs ( 3.03 usr + 0.07 sys = 3.10 CPU) @ 9.35/s (n=29)
Rate slice splice delete
slice 6.93/s -- -26% -46%
splice 9.35/s 35% -- -27%
delete 12.8/s 85% 37% --
0097nobodyさん
2011/09/24(土) 11:44:49.89ID:???(utf-8 でソースを書いています)
utf-8 の半角ア -> EFBDB1
utf-16 の半角ア -> FF71
utf-8 でソースを書いているのだから、print "0xEFBDB1" で半角アが出力されるだろうと思ったら、
print "0xFF71" でないと半角アが表示されませんでした。
0098nobodyさん
2011/09/24(土) 16:12:39.72ID:???パスワードをこの関数を使って暗号しようと思っていますが
この関数を使う上で欠点や注意点がありましたら教えてもらえませんか?
0099nobodyさん
2011/09/24(土) 16:30:15.23ID:???>>1
http://perldoc.jp/func/crypt
0101nobodyさん
2011/09/24(土) 18:00:52.20ID:???0xは数値に対してなので、\xだと思いますが、\xは2桁までしか拾わないので、
3桁以上の場合は、{ }を使って\x{123}とする必要があります。
2桁の場合は(\x{00B1}としても2桁と解釈されます)、その値そのもののバイナリ
文字列となります。
print "\xEF\xBD\xB1";
これ↑は、UTF-8として解釈すれば「ア」を意味するバイナリ文字列です。
ただし、Perlがこれを文字列処理するときはISO 8859-1という文字コードの3文字
として扱います。
3桁以上の場合は、その値のUnicodeコードポイント(U+FF71)のテキスト文字列となります。
( Perlは、"\x{FF71}"を「ア」という1文字として扱う)
バイナリ文字列(=バイト文字列)とは、バイト単位で処理される文字列のことです。
テキスト文字列とは、文字単位で処理される文字列のことです。
0104nobodyさん
2011/09/26(月) 12:35:58.38ID:???if (length $handle_pass >= 12)
{
my $mark = substr($handle_pass, 0, 1);
if ($mark eq '#' || $mark eq '$')
{
if ($handle_pass =~ m|^#([[:xdigit:]]{16})([./0-9A-Za-z]{0,2})$|)
{
$GB->{TRIPSTRING} = substr(crypt(pack('H*', $1), "$2.."), -10);
}
文字列12バイト以上で、先頭が#または$の場合、
$handle_pass =~ m|^#([[:xdigit:]]{16})([./0-9A-Za-z]{0,2})$|を行なって
cryptによって生成していると思います。
しかし、$GB->{TRIPSTRING}や$1や$2をprintすると何も表示されません。
$handle_pass =~ m|^#([[:xdigit:]]{16})([./0-9A-Za-z]{0,2})$|では何を行なっているのですか?
教えてください。
##0123456789abcdefxx 形式のトリップキーかどうかのチェックだろ
>>105
>>104は書いてないけど実際はelseがある
2chでは今のところ単に予約としてとってあるだけらしいから???になるだけだけど
0108104
2011/09/26(月) 17:00:08.24ID:???末尾は./0-9A-Za-zのいずれかが0個以上2個以下連続する。
ですよね?
#0123456789abcdefxxは真
#0123456789abcdefxxxは偽
#0123456789abcdefは真
#0123456789abcdefあ が偽なのは、なぜでしょうか?
また、[[:xdigit:]]の[]が二重でくくられている意味を教えてください。
0109104
2011/09/26(月) 17:01:58.51ID:???#0123456789abcdefも偽ではないのか?と思います。
0110nobodyさん
2011/09/26(月) 18:06:25.07ID:???f の後ろに続く判断が ? なのか + なのかで意味合いが変わってくるかと。
トリップキーの規格をもっかい調べてみればよいかと。
0111nobodyさん
2011/09/27(火) 00:54:20.16ID:???を作る方法は良く見かけますがディレクトリではなく
openでロック用ファイルを作るというのは問題があるんでしょうか?
0112nobodyさん
2011/09/27(火) 01:02:44.10ID:???とかじゃなかったっけ?
0113nobodyさん
2011/09/27(火) 01:31:29.84ID:???http://www.din.or.jp/~ohzaki/perl.htm#File_Lock
今時 flock を使えない環境に出くわす事も稀だがな。
http://perldoc.perl.org/perlport.html#flock
0114nobodyさん
2011/09/27(火) 02:07:22.29ID:???しかし use utf8 してないスクリプトから呼ばれた時には、これだと文字化けが起きてしまいます。
そのため use utf8 されていない場合にはフラグを落として返したいのですが、
モジュールを呼んだスクリプトで use utf8 されてるかどうか調べる方法はあるのでしょうか?
モジュールが特定の文字コードに依存すること自体が駄目だとは分かっては居るのですが・・・
0115nobodyさん
2011/09/27(火) 04:57:52.69ID:???余地が少ないんじゃなくて余地が無い、
つまり処理がアトミックでないとだめなんだよ。
「余地が少ない」んじゃ意味ないの。
0116nobodyさん
2011/09/27(火) 11:02:16.14ID:???でデッドロックが発生した場合はどうなるんでしょうか?
あと、待ってる間は自動でsleepしてくれるんでしょうか?
flock(XX, 6)
で自分で実装するのとどちらが良いのか迷ってます。
0117nobodyさん
2011/09/27(火) 19:02:14.19ID:???レンタルサーバに置きます。
全体を無限ループをしてsleep()で休むというのを考えたのですが、無限ループは一番やってはいけないらしいですね。
あと検索するとすぐJavaScriptで自動更新する方法が出てきますが、
この方法だと時限以外にもCGIにアクセスされたときに実行してしまうと思います。
JavaScriptだけに実行させたいときはパーミッションをどう設定すればいいですか?
0118nobodyさん
2011/09/27(火) 19:46:39.67ID:???>明白ではないものの、伝統的な flock の動作としては、ロックが得られるまで 無限に待ち続けるものと、単に勧告的に ロックするものの二つがあります。
>>117
cronのことを聞いてる?
0119nobodyさん
2011/09/27(火) 21:07:32.00ID:???その説明を読んで具体的にどうなるのかが分からなかった
伝統的とか無限とか
・複数のプロセスが待ち状態になった場合に、次にロックを得られる順番は?
・デッドロックかかったらプロセスはどうなるのか
・待ってる間の負荷は
この辺りが気になる。
0120nobodyさん
2011/09/27(火) 22:48:37.67ID:???システムにしか分かりません
・デッドロックかかったらプロセスはどうなるのか
flock を待つオプションで呼び、他のプロセスが死ねばロックは外れるので先に進めますが、
mod_perlなどではプロセスは死なないのでflockは掛かったままになります。
なので、flockを呼ぶときは待たないようにしましょう
0121nobodyさん
2011/09/27(火) 23:25:00.27ID:???無限に待ち続けるとあるんですが、待たないようにする方法もあるんでしょうか?
あと、大量のプロセスが待ち状態になった場合の負荷も気になります。
大人しく待ってるんでしょうか?
0122nobodyさん
2011/09/27(火) 23:54:57.99ID:???LOCK_NBだ、ドキュメントぐらい読め
sleep以外に何をするのか、それ以前にロック待ちが大量にある時点でどうか
0123nobodyさん
2011/09/28(水) 01:15:39.74ID:???>>118 の書いているとおり通常はcronを使う。と思う。
> あと検索するとすぐJavaScriptで自動更新する方法が出てきますが、
「プログラムを定刻になると自動で実行」させるのにJavaScriptをどうやって使うの? 意味がわからん。
> JavaScriptだけに実行させたいときはパーミッションをどう設定すればいいですか?
さらに意味がわからん。
0124nobodyさん
2011/09/28(水) 01:29:17.95ID:???俺は最初、サーバサイドでjavascriptを動かすnode.jsのこと言ってるのかと思った。
cronを扱うためのapiもあるみたいだし。
perl関係ないけど。
0125nobodyさん
2011/09/28(水) 02:00:23.29ID:???ありがとうございました。
LOCK_NB使わずに待たない方法があると勘違いしてました。
素直に自分で実装します。
0126nobodyさん
2011/09/28(水) 13:39:10.69ID:???0127nobodyさん
2011/09/28(水) 17:26:59.68ID:???while<IN>で1行ずつ読み込む方がいいんですか?
配列を引数にしたり戻り値にしたりする場合が多いから
どうしても一括読み込みが多くなってしまいますが
一括読み込みだとそんなにメモリの負担になりますか?
ていうか<IN>自体にもファイル全部のデータが格納されているんですよね?
0128nobodyさん
2011/09/28(水) 18:31:25.70ID:???今のご時世だったら、殆どの人は気にする事は無いでしょ。
>ていうか<IN>自体にもファイル全部のデータが格納されているんですよね?
そんなスーパーな挙動を取られたら、5GBファイルを 2GB メモリの PC で解析
出来ないじゃないですかっ
0129nobodyさん
2011/09/28(水) 21:17:17.61ID:???0130nobodyさん
2011/09/28(水) 22:32:03.45ID:???% cat hoge.pl
use Benchmark qw( timethese cmpthese ) ;
cmpthese timethese ( undef, {
arr => sub { open my $fh, q{<}, q{test.txt} ; my @arr = <$fh> ; close $fh ; @arr },
whi => sub { open my $fh, q{<}, q{test.txt} ; my @arr ; while (<$fh>){ push @arr, $_ } close $fh ; @arr },
aho => sub { open my $fh, q{<}, q{test.txt} ; my @arr ; for (<$fh>){ push @arr, $_ } close $fh ; @arr },
});
% perl hoge.pl
Benchmark: running aho, arr, whi for at least 3 CPU seconds...
aho: 3 wallclock secs ( 2.76 usr + 0.35 sys = 3.11 CPU) @ 48.87/s (n=152)
arr: 3 wallclock secs ( 2.72 usr + 0.41 sys = 3.13 CPU) @ 56.55/s (n=177)
whi: 3 wallclock secs ( 2.85 usr + 0.30 sys = 3.15 CPU) @ 70.79/s (n=223)
Rate aho arr whi
aho 48.9/s -- -14% -31%
arr 56.5/s 16% -- -20%
whi 70.8/s 45% 25% --
0132nobodyさん
2011/09/28(水) 23:04:50.68ID:???0133nobodyさん
2011/09/29(木) 00:01:53.09ID:???while (<FH>) {
}
0135nobodyさん
2011/09/29(木) 00:45:39.00ID:???最後に処理されたもののほうが早くなる。
0136nobodyさん
2011/09/29(木) 00:54:10.24ID:???仮にキャッシュされてるんなら
0137nobodyさん
2011/09/29(木) 01:02:01.08ID:???適当に順番入れ替えてやってみ。
結果はほとんど変わらないから。
ていうかよく見たら一番最後に処理したahoが一番遅いじゃねーか。
0138nobodyさん
2011/09/29(木) 01:09:34.61ID:???all => sub { open my $fh, '<', 'test.txt'; my $buf; read($fh, $buf, (-s 'test.txt')); close $fh ; return split("\n", $buf);},
0139nobodyさん
2011/09/29(木) 01:35:54.32ID:???ファイルの下に行くほど新しい書き込みの場合
最新のn件を表示する場合はwhileで1行ずつは難しいな
@linesに全部読み込んで@linesの配列の後ろからn番までを切り取って表示すれば簡単だな
0140nobodyさん
2011/09/29(木) 01:40:46.41ID:???0142nobodyさん
2011/09/29(木) 02:22:14.02ID:???ファイル読み込み位置操作できるのseekしか見つからなかったが
これ行単位じゃなく後ろからのバイト数なんだよな
0143nobodyさん
2011/09/29(木) 02:39:16.38ID:???0144nobodyさん
2011/09/29(木) 04:40:11.37ID:???http://www.din.or.jp/~ohzaki/perl.htm#File_Reverse
0145nobodyさん
2011/09/29(木) 06:43:00.87ID:???一応書いとくが、Benchmarkのサブルーチン実行は記載順じゃないぞ。
勝手にソートされる。
もちろん、135の意見に同意するわけでは無いが。
ahoが遅いのは、明白に(<$fh>)の時点でメモリに確保(無名配列への代入と同等)
されてて、その後に@arrにpushしてるから、遅いの当たり前。
サブルーチンの名前が「アホ」な時点でネタだと分る。
0146nobodyさん
2011/09/29(木) 07:40:54.50ID:???0147nobodyさん
2011/09/29(木) 08:22:35.67ID:???以下は自分の推測。
正しいかはわからない。
@arr = <$fh>;は、まずreadline関数内で、全行のリストが作られ、それが@arrにコピー
されるので「@arr+全行リスト」のメモリを使う。
while (<$fh>){ push @arr, $_ }は、1行だけが$_に入るので、「@arr+1行分」のメモリ
しか使っていない。
メモリ使用量の差が速度差に出たと。
0148nobodyさん
2011/09/29(木) 11:31:16.87ID:???7.8MB のテキストファイルでぶん回してみた
Benchmark: timing 10000 iterations of aho, arr, whi...
aho: 1337 wallclock secs (1157.39 usr + 103.11 sys = 1260.50 CPU) @ 7.93/s (n=10000)
arr: 1284 wallclock secs (1118.88 usr + 102.05 sys = 1220.92 CPU) @ 8.19/s (n=10000)
whi: 921 wallclock secs (768.06 usr + 104.30 sys = 872.36 CPU) @ 11.46/s (n=10000)
Rate aho arr whi
aho 7.93/s -- -3% -31%
arr 8.19/s 3% -- -29%
whi 11.5/s 44% 40% --
0149nobodyさん
2011/09/29(木) 16:22:24.12ID:zOJkGfGBメールからプログラムを起動したくて色々設定を行っているのですが
どうにも行き詰ってしまいました。
CentOSにwebminを入れて管理しています。
sendmailにエイリアスを利用してプログラムを起動しようとしているのですがうまくいきません。
とりあえず外部からのメールは受信出来ている状態です。
登録用のエイリアスにプログラムに送ると合わせてユーザーにもメール配信していますが
そちらには届いている事を確認済みです。
smrshについてはリンクを設定済みでエラーは返ってこなくなりました。
この状態で簡単なプログラムを作成して動作確認を行おうとしたのですが
プログラムが動きません。
#!/usr/bin/perl --
open(OUT, ">> datafile.txt");
print(OUT "動作確認\n");
close(OUT);
試しでこのようなコードを置いてるのですが動きません。
プロンプトから動作させた場合は正しくファイルに書き込まれています。
エイリアスの指定の仕方がまずいとかでしょうか?
エイリアス名: "|/usr/bin/perl /var/www/html/プログラム名"
のような感じで指定しています。
直接
エイリアス名: "|/var/www/html/プログラム名"
としてもダメでした。
もしわかるかたがいらっしゃいましたらよろしくお願いします。
0150149
2011/09/29(木) 16:24:24.50ID:zOJkGfGBパーミッションは
プログラム755
書き込み用ファイル666
としています。
0151nobodyさん
2011/09/29(木) 16:36:26.36ID:???0152nobodyさん
2011/09/29(木) 16:41:31.46ID:???メールがサーバに届いているなら、/var/log/maillogかなんかに出ているログを確認するというのが基本です。
気になったのは、ファイルパス。シェル上ではログイン時にそのユーザー派のホームディレクトリにカレントパスがセット
されますが、sendmailで受けた場合はそのパスにならないのだから、絶対パスで指定する必要があります。
0153nobodyさん
2011/09/29(木) 16:41:44.87ID:???この datafile.txt はどのディレクトリに書き込まれるの?
パーミッションエラーで書き出せないとかじゃないの?
0155nobodyさん
2011/09/29(木) 17:44:48.07ID:???0156nobodyさん
2011/09/29(木) 17:51:14.58ID:???0157nobodyさん
2011/09/29(木) 21:10:32.23ID:???0158nobodyさん
2011/09/29(木) 21:45:52.72ID:???せいくらべ。
0159nobodyさん
2011/09/30(金) 03:01:50.06ID:???最大ページ数=投稿数/1ページあたりの表示数の少数切り上げだから
投稿数がわからないと最大ページ数がわからないわけだから
whileだと最初にwile(<IN>){$toukousuu++;}で投稿数出してそのあとwile(<IN>){表示}の
2回ループしなきゃならないけど@lines一括読み込みなら$toukousuu=@linesのforeach(@lines){表示}の1回ループですむ
0160nobodyさん
2011/09/30(金) 03:40:56.53ID:???∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>159
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0161nobodyさん
2011/09/30(金) 09:23:13.25ID:???akiyan降臨中w
0162nobodyさん
2011/09/30(金) 12:34:30.65ID:???何で釣り扱いされているのかわからんw
じゃあ例えばファイルの下から10番目までの行であるならばフラグを立てるという場合
while(<IN>){
$aaa = $toukousuu-10;
if($count>=$aaa){
$flg = 1;
}
else{
$flg = 0;
}
$count++;
}
としなければならないが$toukousuuを求めるのはこれよりまえにwhile(<IN>){$toukousuu++;}とする必要が
あるのはわかるだろ。
つまりwhileだとループを2回しなければならんのだよ
0163nobodyさん
2011/09/30(金) 13:19:30.58ID:???〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
>( c´_ゝ`) |
|
>( c´_ゝ`) J
>( c´_ゝ`)
|
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
| >( c´,_ゝ`)
|
J >( c´,_ゝ`)
>( c´,_ゝ`)
0166nobodyさん
2011/09/30(金) 18:55:57.64ID:???どのみち全数読み込まなきゃいけないんだったらもちろん一括読み込みすればいいんだけどさ。
しかし重くなるのが嫌だったら投稿数などのインデックス情報の類は別途保存して、
独立して管理するという方法もあるぞ。
そうすれば $count = @array; みたいにいちいち配列の要素数を数えなくても済む。
0167nobodyさん
2011/09/30(金) 19:33:37.65ID:???slurp の方が早いよって主張ならまだしも、、、
>>130の結果が理解出来てないだろお前さん。
% perl -le '$s = q{x} x 1000000 ; $s =~ s/(.{1,50})/$1\n/g; print $s ' > test.txt
% cat hoge.pl
use Benchmark qw( timethese cmpthese ) ;
cmpthese timethese ( undef, {
arr => sub { open my $fh, q{<}, q{test.txt} ; my @arr = <$fh> ; close $fh ; printf STDERR "%d\n", scalar @arr ; for ( @arr ){ print STDERR; } },
whi => sub { open my $fh, q{<}, q{test.txt} ; my @arr ; while (<$fh>){ push @arr, $_ } ; close $fh ; printf STDERR "%d\n", $. ; for ( @arr ){ print STDERR; } },
});
% perl hoge.pl 2> /dev/null
Benchmark: running arr, whi for at least 3 CPU seconds...
arr: 4 wallclock secs ( 2.00 usr + 1.23 sys = 3.23 CPU) @ 242.11/s (n=782)
whi: 4 wallclock secs ( 1.95 usr + 1.29 sys = 3.24 CPU) @ 254.94/s (n=826)
Rate arr whi
arr 242/s -- -5%
whi 255/s 5% --
0168nobodyさん
2011/09/30(金) 20:14:25.09ID:???全部読み込むにしても一括読み込みだとメモリ食うよ
一行ずつ回す方がいい
>>167
読んだけど意味が分からない
0169nobodyさん
2011/09/30(金) 20:49:46.04ID:???速度の話だと誤読したわ。
速度だと既に結論が出てて、>>130理解してれば、
while(<$fh>){ push @arr, $_ ; } が、@arr=<$fh>;
より早いんだから、後の処理が同じなら何回ループ回そうが、
無関係。カウンタを自分で付けようが、 $. 利用しようが同じ。
メモリ?
んなもん、同じファイルなら、
@arr =<$fh> ;だろうが、一行づつ回そうが誤差範囲だろ。
それを何回回そうが無関係。
@arr = do{ local $/ ; $buf = <$fh> ; split /^/ms, $buf ;
なんかするんだったら多くかかるのは当然だけど。
sub myps { print `ps ux $$`};
myps;
# お好きなコード
myps;
でもして差分取れば?
0170nobodyさん
2011/09/30(金) 20:50:40.41ID:???◯@arr = do{ local $/ ; $buf = <$fh> ; split /^/ms, $buf ; } ;
0171nobodyさん
2011/09/30(金) 21:29:34.48ID:???>>159
open my $fh, '<', 'hoge.pl' ;
while ( <$fh> ){ }
print "$.\n" ;
while ( <$fh> ){ print }
close $fh ;
このコードを hoge.pl として保存して実行してみろ。
と言うことで、
>>167
165 の言う「2回ループ」は上のコード、好意的に判断しても
「ファイルハンドル開き直してのファイル読み込み2回」って意味だ。
あなたの突っ込みは通じない。
0172nobodyさん
2011/09/30(金) 23:04:33.02ID:???ほんとうの意味でファイルを一括で読むこっちが
一番速いって答えは出たと思うんだけど。
all => sub { open my $fh, '<', 'test.txt'; my $buf; read($fh, $buf, (-s 'test.txt')); close $fh ; return split("\n", $buf);},
0173nobodyさん
2011/09/30(金) 23:07:07.88ID:???はい
0174nobodyさん
2011/09/30(金) 23:11:26.42ID:???同等の条件にすると話しにならんくらいarrの方が早い。
cmpthese timethese ( undef, {
arr => sub { open my $fh, q{<}, q{test.txt} ; <$fh> },
all => sub { open my $fh, '<', 'test.txt'; my $buf; read($fh, $buf, (-s 'test.txt')) ; split(/^/ms, $buf);},
});
結果↓
Benchmark: running all, arr for at least 3 CPU seconds...
all: 3 wallclock secs ( 2.72 usr + 0.36 sys = 3.08 CPU) @ 1366.56/s (n=4209)
arr: 4 wallclock secs ( 1.51 usr + 1.66 sys = 3.17 CPU) @ 30816.72/s (n=97689)
Rate all arr
all 1367/s -- -96%
arr 30817/s 2155% --
0175nobodyさん
2011/09/30(金) 23:13:06.26ID:???スカラーコンテキストで評価されるわw
0176nobodyさん
2011/09/30(金) 23:21:35.32ID:???0177nobodyさん
2011/09/30(金) 23:22:41.29ID:???遅いのは当たり前の話で、内部的に一行づつ読み込んでいるから。
0178nobodyさん
2011/09/30(金) 23:23:54.55ID:???arr => sub { my @arr = sub{ open my $fh, q{<}, q{test.txt} ; <$fh> }->() },
all => sub { my @arr = sub{ open my $fh, '<', 'test.txt'; my $buf; read($fh, $buf, (-s 'test.txt')) ; split(/^/ms, $buf); }->() },
まあ、 all の方が早いわな。
0179nobodyさん
2011/09/30(金) 23:56:34.45ID:???‐个 兀 `:;:.::.':., ,':.::.:,:'
`.:`.:''''..:.‐ :.:-:.:...,,,, __ 、‐-、 __ ,.‐z_,-、 '':;;:::':, ,...;'::..:,;' ,,.:':
..:..:...:..:..:...:...:...:.:..:...:...:..:.`_,,ノ └¬、'''.:.:‐:..,,ヾ、__)∠,ィク /,、 ';:''..:.:..:..:.:..:.'':;'':.:.,;.
.:..:...:..:..:...:...:...:.:..:...:...:..:.ヾ、_ <^'".:..:..:.:..: <`ヾ´~_ _~´ 〉'''':.::.;':.::...:.:..:..:..:...:.:.';' ,,
..:..:...:..:..:...:...: ,,;,;,;,,;:..:..:.:.:..: / /\ `ヽ、..:..:.:..:..:_ブ∧ ‐ ‐ /.:.:..:,;,::';..:..:..:.:..:..:..:...:.:.:''´:.:
:..:.:..:..,.:-〜' , 、m_)°.:.:.'ー-'..:..:..:`ー--',,;,;::.:.:ヽ、_i (_,/しヘヘ_) ´ '::;.:.::.:..:..:..:..:.:..,;'` ''
,;,,;,;/ <て_;:、。.:° ‐ '''' " ´ ´ ,;:''.:.:,:'' :;,._.:,;.,、:.'':.,,_
/ r'7ァッーヘ、_) ゚ ,,:''.:.:,:'' , -〜''ヽ‐-‐、.:.:.''
-く レ'/〈 ° 。 ,ヘVフヽ、 ,,:''.:.:.:,:'' (_,ヘ、 ⌒
V巛〈 ヽ , 〜''ヽ / e ヽノ\ヘ. ,,:.''..::.:,:'' 。 と_刀Tゥー
_/ ヾ ヽ、 Y ァ个〜'。゚ ,少ー- 代ヽ、 ヾゝ ,,.: '':.:/ヽ、' 。 ゚ (⌒⌒ー-く ノノ,!j
{. \ Y巛〈 ) lfgレ゙く \''.:.::.:.:.:/ / 入 ゚ 。 `〜<ヾヾ、,`⌒ 〜
_, ヘ、 ヾ{ ヾト、 'ヾゝャgメl` ヾヨ /〃/ _,,> 〉〉ノ `厂丁`
\ \ ヽ、 `ゞへmfi_ ゞdf‐ '' ´ //// ノ
─〜 ⌒ヽ、 \ ヽ、 ´`'‐ニ世三r<k´ _,,ノ,〆 /
__,, へ、 \ ` ー- 、__ _,, --‐‐ ''´ _ - ´ /
 ̄ ̄ \ ` ー- 、 _  ̄ ̄ ̄ _, -〜< -一 ブ
ヽ、、  ̄` ー─----── ´ ̄ _ -一 ´
0181nobodyさん
2011/10/01(土) 20:11:38.10ID:???変数で送られるからwileで1行ずつ回すというのは無理だな
こういう場合は画像が大きければ大きいほど、どうしてもメモリは食う
0182nobodyさん
2011/10/04(火) 02:02:20.47ID:???まあそうだろうなmalti-partの場合も
read(STDIN,$buff,$ENV{'CONTENT_LENGTH'});
で$buffに全部の送信データが格納されるから
画像が大きいほどメモリは食う
0184nobodyさん
2011/10/06(木) 12:31:19.56ID:???read(STDIN, $data, $ENV{'CONTENT_LENGTH'});
print $data;
だけのスクリプトを書いたんですが
Use of uninitialized value in read at 〜と出ます
これなんでですかね?
0185nobodyさん
2011/10/06(木) 12:50:34.41ID:???http://perldoc.jp/docs/perl/5.10.0/perldiag.pod
本当にその2行だけなのなら、
-w オプションが効いている下で $ENV{'CONTENT_LENGTH'} を未定義のまま実行したからだろう。
0186nobodyさん
2011/10/06(木) 13:13:47.41ID:???ありがとうございます。他のところがおかしいんじゃなくてよかったです。
これは入力がなければ出るものなんですね。
0187nobodyさん
2011/10/06(木) 14:16:31.01ID:???> これは入力がなければ出るものなんですね。
違う。$ENV{'CONTENT_LENGTH'} が未定義 (undef) だから出ている。
STDIN からの入力が無くとも $ENV{'CONTENT_LENGTH'} に 0 が入っていれば出ない。
> Use of uninitialized value%s
> (W uninitialized) 未定義値を、あたかも既に定義されているかのように使用しました。
> これは、"" か 0 と解釈されますが、間違いの可能性があります。
> この警告を止めるには、変数に定義された値を代入してください。
0189nobodyさん
2011/10/07(金) 00:00:35.18ID:???0190nobodyさん
2011/10/07(金) 01:23:00.44ID:???<script>タグ勘違いしてる。それはクライアント側での処理だから。
ttかHTML::Templateなどのテンプレートエンジンを考えてみたら。
0192nobodyさん
2011/10/08(土) 14:37:18.51ID:???の make test は Result: PASS になり、
SYNOPSIS にあるコードを動かしてみたところ、
Can't call method "add_handler" on an undefined value at /usr/lib/perl5/site_perl/5.10/WWW/BBS/2ch.pm line 39.
と出ました。なので 2ch.pm:39 を見ると、
https://github.com/motemen/WWW-BBS-2ch/blob/master/lib/WWW/BBS/2ch.pm
my $class = shift;
my $self = bless {
ua => LWP::UserAgent->new(agent => "Monazilla/1.00 WWW::BBS::2ch/$VERSION"),
encoding => 'shift_jis',
@_,
}, $class;
$self->ua->add_handler(
という感じです。
Dumper $self->ua; すると undef です。
エディタを開いて試しに自分で
$ua = LWP::UserAgent->new(agent => "Monazilla/1.00 WWW::BBS::2ch/$VERSION");
$ua->add_handler(
とか書くと $ua は取得できて add_handler も動くので CPAN モジュールは問題なく入っているようです。
my $self = bless {} が怪しいのですが、どうすれば WWW::BBS::2ch の SYNOPSIS を動かせるでしょうか。
0194nobodyさん
2011/10/08(土) 18:24:39.39ID:???sub ua{ }
は定義されてるの?
0195nobodyさん
2011/10/08(土) 23:56:07.90ID:???どうも https://github.com/motemen/WWW-BBS-2ch の例が間違っているみたい。
| my $bbs = WWW::BBS::2ch->new(cache => $cache, ua => $ua);
ここで $cache, $ua なんて存在しないから。
その通りに入力したら $self->ua は undef になるだろう。ためしに引数無しで
| my $bbs = WWW::BBS::2ch->new;
としたらどうだ。
0196nobodyさん
2011/10/09(日) 16:35:15.15ID:???わざわざフレームワーク通すまでもないときはどうするのがモダンなの?
0197nobodyさん
2011/10/09(日) 17:53:18.28ID:???0199nobodyさん
2011/10/11(火) 23:38:30.50ID:Xx0lESYm此方で改めて質問させて下さい。
その1------------
DBIからのSqlサーバへの接続方法をご教示下さい。
質問場所がここじゃなかったら誘導お願いします。
以下の環境を作成し、
コマンドプロンプトからtest.plをCALLしたのですが
SQLサーバがないとのエラーが表示され、接続出来ませんでした。
値を色々変えてみたりしたのですがどうやっても接続できず…
何が悪いのかお手上げ状態です。
接続文字列が悪いのでしょうか…?
ODBCでの接続は行えており、CSEからのDB参照や
コマンドプロンプトからのsqlcmdコマンドでなら正常にアクセスできます。
[sqlcmd /E /S PC-Name\SQLEXPRESS]
環境
・Windows7
・Microsoft SQL Server 2008
・Perl5.0
Server:PC-Name\SQLEXPRESS
DB:sampleDB
User:user
Password:pass
0200nobodyさん
2011/10/11(火) 23:39:50.63ID:Xx0lESYmtest.pl
-----------------------
$dataSource = "dbi:ODBC:".
"driver={SQL Server};".
"Server=(local);database=sampleDB;".
"Trusted_Connection=yes;".
"AutoTranslate=No;";
#データベースに接続
$user="user"; #ユーザ名
$pwd="pass"; #パスワード
$dbh = DBI->connect($dataSource,$user,$pwd)
or die $DBI::errstr;
# データアクセス(今は処理無し)
$dbh->disconnect;
-----------------------
エラー内容
-----------------------
DBI connect('driver={SQL Server};Server=(local);database=sampleDB;Trusted_Connec
tion=yes;AutoTranslate=No;','user',...) failed: [Microsoft][ODBC SQL Server Driver
][Shared Memory]SQL Server が存在しないか、アクセスが拒否されました。 (SQL-08001
) [state was 08001 now 01000]
[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (Connect()). (S
QL-01000) at dbtst.pl line 28
[Microsoft][ODBC SQL Server Driver][Shared Memory]SQL Server が存在しないか、ア
クセスが拒否されました。 (SQL-08001) [state was 08001 now 01000]
[Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (Connect()). (S
QL-01000) at dbtst.pl line 28.
-----------------------
0201nobodyさん
2011/10/11(火) 23:40:28.76ID:???0202nobodyさん
2011/10/11(火) 23:48:58.55ID:Xx0lESYm「その2」を付け忘れてしまいましたが
199-200でワンセットです。
Linux + MySql5.0 + DBIで動作しているシステムを
改造する為のローカルサーバを作成したいので、
どうしてもDBIを使用したいと考えています。
よろしくお願いいたします。
0203nobodyさん
2011/10/12(水) 01:55:18.70ID:???この表記はアリなのか?
0205nobodyさん
2011/10/12(水) 08:22:59.76ID:???sampleDBが文字列じゃなくて変数になってないか?
0206nobodyさん
2011/10/12(水) 12:30:39.86ID:???0207199
2011/10/12(水) 18:44:51.34ID:QKPkC9MD>>203
Server=(local);
の表記は、ネット上で拾ったやり方をそのまま使っているので
使える…とは思うのですが…。ちなみに、
Server='PC-Name\SQLEXPRESS';
にしても状況変化なしです。
205 206>>
"database='sampleDB';"
に変更してみましたが、変化なしです。
エラーメッセージで
「SQL Server が存在しないか、アクセスが拒否されました」
とあるので、DBではなくServerへの接続が
失敗しているのではないかと思うのですが
Windows7の場合カーネルの違いから挙動が異なる
といった事はありませんでしょうか?
0209199
2011/10/12(水) 20:45:40.79ID:QKPkC9MD有難うございます!
ODBC経由でDBに接続する事でアクセする事が出来ました(>_<。
ユーザDSNに「dbgSQLServer」の名前でDBを登録し、
$dataSource= "dbi:ODBC:dbgSQLServer";
としたら無事SQLの実行まで確認できました。
直接接続する事にこだわる必要は無かったんですね。
何日も悩んでいた事だったので本当に助かりました。
有難うございました。
0210nobodyさん
2011/10/12(水) 22:01:53.09ID:???よかったよかった!
Windows+PostgreSQLでDBD::Pgが使えなくて困ったときにそうしたんだ。
その時PgPPどころかCPANもわからなかったあのころ。
車輪何個も作っちゃったけど、キニシナイ
0211199
2011/10/13(木) 18:35:59.97ID:???本当有難うございました。
PostgreSQLは使ってみようとインストールする時点で
挫折した記憶が…(^^;
プログラムををゴリゴリ書くのは楽しいんですが
何時も環境構築が一番のネックになります。
これでやっとコーディングに入れます♪
0212nobodyさん
2011/10/17(月) 23:46:25.75ID:???自分は今は rename とか mkdir とか使ってロック機構を実装してますが、
お仕事とかで perl を使ってる人はファイルロックする際には rename とか
mkdir とかでロックかけてるのでしょうか?
それとも flock を使用しているねでしょうか?
「DB 使えや」 ってゆう回答は求めておらず、ファイル読み書き時に於けるロックは、
仕事などではどう対応されているのか気になったもので、質問させていただきました。
0213nobodyさん
2011/10/18(火) 01:32:44.53ID:???以前、自分が入社する前に書かれたソースを見たことがあるんだけど、その時はflockを使ってたっぽい。
ただflockすれば良いというものでもなく、きちんとした方法で使わないと全くの無意味だけど。
あと、今ならその辺を上手くやってくれるモジュールがるような気がする。
0214nobodyさん
2011/10/18(火) 06:58:20.05ID:???その場合はmkdirなり使うとかの、別の方法で対処すると思う。
プロとかアマとかはあんまし関係ないんじゃないだろうか。
0215nobodyさん
2011/10/18(火) 12:47:22.63ID:???0216nobodyさん
2011/10/18(火) 16:58:19.77ID:???イントラでperl使ってるけど…
ごめん、DB(PostgreSQL)つかってる。
月並みだけど、
DB>flock>その他の手段
だよね。
0218nobodyさん
2011/10/18(火) 17:48:49.73ID:???デッドロックに対する対応だけど、
プロセスがkillされるような事態に備えて $SIG でトラップすべきか、
次実行されたときにデッドロックされたファイル情報から指定時間経過してればデッドロックと判断。
どっちがいいんでしょうね。
トラップした方がスムーズにいけるっぽいけど、他の部分で別のトラップがされると実行されない可能性もあったりするんだよね。
迷うわぁ・・・
0219nobodyさん
2011/10/18(火) 22:08:36.70ID:???デッドロックしないようにつくれや
0220nobodyさん
2011/10/18(火) 22:33:11.15ID:???0222nobodyさん
2011/10/18(火) 23:25:30.92ID:???0223nobodyさん
2011/10/19(水) 00:20:24.38ID:???0224nobodyさん
2011/10/19(水) 00:46:29.74ID:LOxxA4S5widthを入力しないといけませんよね
全角文字だけなら計算できるのですが、半角英数カナなどが含まれるので余白が発生してしまいます。
あらかじめ文字列の長さをpixelで計算する方法はありませんか?
0225nobodyさん
2011/10/19(水) 09:54:29.71ID:???cp932に変換してバイト数を調べるのはどうか
0226nobodyさん
2011/10/19(水) 10:42:15.21ID:???@bounds = GD::Image->stringFT($fgcolor,$fontname,$ptsize,$angle,$x,$y,$string)
0228nobodyさん
2011/10/21(金) 17:01:48.08ID:???0229nobodyさん
2011/10/22(土) 05:11:26.88ID:???現在ファイルがopenできなくなると言う罠に陥りました。
windows7でこうゆうファイル名なんですが、コレ問題ありますか?
運用はunix系で考えているんでそっちでも問題あれば教えてください。
0230nobodyさん
2011/10/22(土) 05:13:47.30ID:???0233nobodyさん
2011/10/22(土) 21:14:46.30ID:???0234nobodyさん
2011/10/22(土) 21:57:21.39ID:???0235nobodyさん
2011/10/22(土) 22:19:39.38ID:???0236nobodyさん
2011/10/24(月) 13:03:32.39ID:???こうすると
push($h{$i}->[0], "aaa"));
このようなエラーになります。
Type of arg 1 to push must be array (not array element)
0237nobodyさん
2011/10/24(月) 13:36:02.75ID:???0239nobodyさん
2011/10/24(月) 13:58:00.35ID:???Perlだけ作法が全然違うからわかわからないんですけど、どうすればいいですか?????????
0240nobodyさん
2011/10/24(月) 15:33:37.66ID:???use v5.14;
push $h{$i}, "aaa";
でいけるかな?
0242nobodyさん
2011/10/24(月) 19:39:40.90ID:???0243nobodyさん
2011/10/24(月) 23:41:27.27ID:???ハッシュとか配列とかの操作でカッコとか記号とかが覚えられない。
代入するときも表示するときもアクセスの仕方が違ったりして覚えられない。ダンプするのも一苦労。
クラスのnewのblessとか未だに何なのかわからない。祝福とは???
リファレンスとかスカラーとかレキシカルとか聞き慣れない用語ばかり出てくる。
スコープとかクロージャとかJavaScriptの悪夢がよみがえる。
とにかく記号ばっかりで暗号いじってるみたいな意味不明さが怖い。
$hoge; $hoge{0}; $hoge->{0}; @hoge; @hoge{0}; @hoge->{0}; %hoge; %hoge{0}; %hoge->{0};
${$hoge}; @{hoge}; @{$hoge}; {@{$hoge{0}}} @{$hoge->[0]}; %{$hoge->[0]}; %{$hoge->{0}}
どれだよ!!!!!!!!111111111
0244nobodyさん
2011/10/24(月) 23:51:16.92ID:???スコープとかクロージャ駄目ってんじゃ他の言語もまともに使えてないだろ……
0246nobodyさん
2011/10/25(火) 00:14:38.50ID:???$hoge{0}; ハッシュ
$hoge->{0}; ハッシュへのリファレンス
@hoge; 配列
@hoge{0}; エラー 配列へのアクセスは $hoge[0] でアクセス
@hoge->{0}; エラー 配列へのリファレンスは $hoge->[0] でアクセス
%hoge; 連想配列
%hoge{0}; 記述エラー 連想配列内の要素は $hoge{0} でアクセス
%hoge->{0}; 記述エラ 連想配列へのリファレンスは $hoge->{0} でアクセス
${$hoge}; スカラのデリファレンス
@{hoge}; エラー
@{$hoge}; 配列のデリファレンス
{@{$hoge{0}}} 連想配列内の配列をデリファレンス ($hoge{0} の中に配列が入っている) ただし外の {} は括る必要なし。 この場合 {} はブロックになる。
@{$hoge->[0]}; 配列へのリファレンスの中の配列
%{$hoge->[0]}; 配列へのリファレンスの中の連想配列
%{$hoge->{0}} 連想配列へのリファレンスの中の連想配列
こんな感じのも良く使うので覚えた方がいいかも。
$hoge = {
'array' => [], 連想配列へのリファレンスの中に配列を作る
'hash' => { 連想配列へのリファレンスの中に連想配列へのリファレンスを作る
'key1' => 'val',
'key2' => 'val',
}
};
それぞれへのアクセスは
$hoge->{'array'}->[1];
$hoge->{'hash'}->{'key1'};
となる。
0247nobodyさん
2011/10/25(火) 00:41:32.32ID:???エラーではない
が、スライスを理解して使っているわけではなく、たまたま動いているだけ、の初心者が多いと思う
0248247
2011/10/25(火) 00:42:17.13ID:???0249nobodyさん
2011/10/25(火) 01:04:32.90ID:???warnings 有効なら @hoge{0} は警告出るだろうが、
@hoge{0..2} とか、 my @keys = (0); @hoge{@keys} なら問題ないはず
0250nobodyさん
2011/10/25(火) 01:31:51.65ID:???けどね。
質問者がくじけてる部分を考えたらスライスは考えないほうがいいのでは?
という意味からエラーっていうことにした。
まぁ、言葉が足りなかったってのもあるけど ^-^;
0251nobodyさん
2011/10/25(火) 01:51:36.00ID:???> @{hoge}; エラー
エラーではない。
全ての変数や関数へのアクセス方法で一番冗長な書き方は sigil { (何か) } ([添え字]|{キー})
の形で、何かが裸の語なら変数名、リファレンスならデリファレンス、
それ以外なら何かの値を名前としたシンボリックリファレンスと解釈される。
通常の変数へのアクセスは、裸の語をデリファレンスすると捉えてもいい。
${ foo } … 通常の変数。{} は*省略可能*。 ${foo} = "foo${foo}foo$foo"; # ok
${ "foo" } … シンボリックリファレンス
${ $foo } … スカラーリファレンス $foo をデリファレンス
${ 'f' . 'oo' } … 式の値を名前としたシンボリックリファレンス
${ \ foo('bar') } … foo('bar') の戻り値のリファレンスのデリファレンス
http://perldoc.jp/docs/perl/5.10.0/perldata.pod#Slices
> (引用注: 添え字/キーの) かっこの種類(大かっこか中かっこか)は、見ているものが配列か
> ハッシュかをつかさどっています。一方、配列やハッシュの先頭の記号 ('$' か '@') は、
> 返ってくるものが単一の値(スカラ)か、複数の値(リスト)かを示しています。
use warnings; my @{foo} = ('a'..'f'); my %{bar} = ('g'..'j');
print ${foo}[3]; # 'd' へのアクセスで "d" を表示
print @{foo}[3]; # 警告有り。('d') へのアクセスで "d" を表示
print @{foo}[3,4]; # ('d','e') へのアクセスで "de" を表示
print ${foo}[3,4]; # 警告有り。リストをスカラーとして評価すると最後の値が返されるので "e" を表示
print ${bar}{'g'}; # 'h' へのアクセスで "h" を表示
print @{bar}{'g'}; # 警告有り。('h') へのアクセスで "h" を表示
print @{bar}{'g','i'}; # ('h','j') へのアクセスで "hj" を表示
print ${bar}{'g','i'}; # キー "g$;i" へのアクセスになるので undef
0252nobodyさん
2011/10/25(火) 03:20:14.95ID:???これだけ知らなかったわ。awk 由来なのかな。
まあ積極的に使う意義は無さそうだし、
人のコードで見かけることもないから覚えなくてもいいよね。
0253nobodyさん
2011/10/25(火) 22:21:51.58ID:???> クラスのnewのblessとか未だに何なのかわからない。祝福とは???
blessは意味わからないよね。
あれ、祝福とか変な言葉で説明するからわからんのさw
オレ流に説明してあげよう。
まず、これを実行してみよう。Dumperは変数の中身を表示する関数だ。use Data::Dumperが必要。
my $a = {key=>1};
print Dumper($a)
以下のように表示される。(改行インデントは折りたたむ)
そう、ようするにただのハッシュだ。
$VAR1 = {'key' => 1};
次に次の命令を実行してみよう。
my $a = {key=>1};
bless($a, "CLASS");
print Dumper($a)
以下のように表示される。さっきのハッシュの周りにCLASSが追加されている。
VAR1 = bless( {'key' => 1}, 'CLASS' );
つまりだ、これはCLASSという名前のクラス名(モジュール名)付きのハッシュということだ。
このモジュール名付きのハッシュにたいして、以下のように->を使って呼び出しをすると、
$a->foo()
$aにはCLASSというモジュール名が結びついているため、CLASS::foo()を呼び出すんだなとPerl実行環境は理解できる。
その時CLASS::foo()の第一引数に$aを渡すことで、foo()の中で$aの値の操作することが可能にある。
これでCLASSクラスのfoo()メソッド呼び出しの仕組みと、$aをCLASSクラスのインスタンスに変換することができた。
0254nobodyさん
2011/10/25(火) 22:33:18.24ID:???$a に bless使ってCLASSと結びつけたハッシュが入っていれば、
CLASS::foo()が呼び出されるわけだが、
$aは文字列でもよい。つまり、
$a = 'CLASS';
$a->foo();
この方式でもCLASS::foo()が呼び出せる。
通常は、CLASSを$aに入れずにそのまま書いて、CLASS->foo() となる。
でこれが foo()じゃなくて new() だと、CLASS->new() となる。
呼び出されるのは、当然CLASS::foo(); そして foo() の第一引数にはCLASSという文字列が入っている。
これを利用してCLASS::newされた時に、CLASSに結びつけたハッシュ、
つまりCLASSのインスタンスを返すことで、Perlにおけるnewの仕組みとなる。
あと余談。殆どの場合ハッシュにCLASSを結びつけるのだが、
別にただの値にCLASSを結びつけるのも一応可能。
0255nobodyさん
2011/10/25(火) 22:34:03.01ID:???×呼び出されるのは、当然CLASS::foo(); そして foo() の第一引数にはCLASSという文字列が入っている。
○呼び出されるのは、当然CLASS::new(); そして new() の第一引数にはCLASSという文字列が入っている。
0256nobodyさん
2011/10/25(火) 22:36:14.83ID:???> 別にただの値にCLASSを結びつけるのも一応可能。
ただの値にblessはできんか。
何かしらの値のリファレンスにblessできる。
0257nobodyさん
2011/10/25(火) 23:11:45.61ID:???を使ってファイルをダウンロードしたいのですがうまくいきません。
perl というかwget の使い方の問題なのかもしれませんが、
適切な書き方をご存知のかたがいらっしゃったらおしえていただけませんか?
ダウンロードしたいファイルは以下のURLです。
ttp://ncode.syosetu.com/txtdownload/dlstart/ncode/108715/?no=1&hankaku=0&code=utf-8&kaigyo=CRLF
エラーとしては、こう言われます。
index.html?no=2&hankaku=0&code=utf-8&kaigyo=CRLF: Invalid argument
Cannot write to `index.html?no=2&hankaku=0&code=utf-8&kaigyo=CRLF' (Invalid argument).
0258nobodyさん
2011/10/25(火) 23:53:11.13ID:???use LWP::Simple;
my $data = get('URL');
特に認証がなければ、これで取得できるかと。
自分は
use LWP::UserAgent;
use HTTP::Request::Common;
use utf8;
my $ua = LWP::UserAgent->new;
〜agent とか timeout とか max_redirect とか cookie の設定〜
my $req = GET('URL');
my $res = $ua->request($req);
my $content = $res->code() eq '200' ? decode('utf-8', $res->content()) : '';
ってやってる。
手順が多いけど、自分の頭ではこの方が使いやすい。
$res->code() eq '200' の部分は $res->is_success とかで置き換えられるけど、回線がパンパンのときに失敗すると
is_success は 1 を返すので信用出来ない。
HTML の取得なら、$res->content() に </html> が含まれるかどうかで判断した方が良い。
つっても、殆どの場合は is_success や is_error は正しく動作する。
0259nobodyさん
2011/10/26(水) 01:13:19.12ID:???wget は特に指定がなければサーバのパスに対応するファイル名でローカルに保存しようとするから、
? はファイル名に使えねえよと言われてるのでは。Windows ないから試せないけど。
>>258
sub is_info ($) { $_[0] >= 100 && $_[0] < 200; }
sub is_success ($) { $_[0] >= 200 && $_[0] < 300; }
sub is_redirect ($) { $_[0] >= 300 && $_[0] < 400; }
sub is_error ($) { $_[0] >= 400 && $_[0] < 600; }
sub is_client_error ($) { $_[0] >= 400 && $_[0] < 500; }
sub is_server_error ($) { $_[0] >= 500 && $_[0] < 600; }
# HTTP::Status より。
失敗したにもかかわらず is_success が真を返すというなら、
まず疑うべきは LWP でなくサーバ側のレスポンスでは?
原因がクライアント/サーバ/回線/他のいずれにせよ、
負荷等が原因で200以外の2xxが返ってくる状況なんてちょっと想像つかんが。
decode('utf-8', $res->content()) はよっっっぽど古いバージョンの LWP じゃない限り
$res->decoded_content(charset => 'utf-8') のほうがよかろ。
0260nobodyさん
2011/10/26(水) 01:38:17.35ID:???失敗なのに is_success が成功を返すのは少々特殊な状況なのは分かってる。
自宅でサーバー動かしてて家のルータは BA8000Pro なんだけど、BitTorrent で Linux ISO を放流してる。
バージョンアップがくるとコネクションがすごい数やって来て、NAT のテーブルが溢れて (上限は 2600)
名前解決すら頻繁に失敗するほど不安定になる。
この状況下で LWP で GET とかすると is_success が成功を返しても、->content() が全てを受け取ってないという事が起こる。
そのほかの環境は弄らずに BitTorrent だけ止めると LWP は正常に送受信できる。
これは何度も再現するのはテスト済。
ちなみに BitTorrent を動かしてるのは WEB サーバーとは別の PC です。
最近は BitTorrent 動かしてないからこういった症状ともおさらばで快適人生♪
>> decoded_content
おぉ〜、こんなメソッドあったんですね。ありがとう!
常々 Encode 呼び出すのめんどくせーって思ってたんで助かる。
0261nobodyさん
2011/10/26(水) 02:43:24.74ID:???>>257です。
アクセスが出来ないじゃなくて、書き込みができないっていう意味だったんですね。
もっと自分でよく考えてみるべきでした。
-Oオプションを付けて書き込むファイル名を指定したところ上手くいきました。
知恵を貸していただきありがとうございます。
0262nobodyさん
2011/10/27(木) 00:59:33.75ID:???あんなふざけたレスにマジレス返してくれてどうもありがとうございます。
まだ全部は試せてないですが、>>246とか物凄く参考になっています。
perldoc.jpなども読んで、もう少し勉強してみますね。
0263nobodyさん
2011/10/27(木) 01:39:37.97ID:???変数名の前の @、$、% の意味 (* ってのもあるけど、難しいので放置で OK)
変数に代入するときの { }、[ ]、( ) の意味を覚えるだけで、理解度はかなり違うと思います。
あとは perl の自由な書き方に慣れていただくしかw
0264nobodyさん
2011/10/27(木) 16:41:18.27ID:???使ったことがないわけじゃないんだけど。
0265nobodyさん
2011/10/27(木) 18:34:30.14ID:???0266nobodyさん
2011/10/28(金) 20:00:02.80ID:???環境はLinuxです。
よろしくお願いいたします。
0267nobodyさん
2011/10/28(金) 20:16:08.47ID:???Python とかのほうが向いてる気はするけど
0268nobodyさん
2011/10/30(日) 22:07:34.60ID:???もし使ってる方はどのソフト使ってますか?
ttp://hibari.2ch.net/test/read.cgi/tech/1147499933/
↑ここでperlの話題がなく、「perl uml」で検索してもそれらしいものが見つからなかったので質問しました。
UMLを勉強しようと思うのですがどのツールがいいのかもわかりません。。
0269268
2011/10/31(月) 00:15:05.76ID:???これはココだとスレ違いですね。
この一文は無視して下さい。
0270nobodyさん
2011/11/01(火) 11:30:50.31ID:???docomo携帯の太陽のSJIS絵文字コード(F89F)を表示しようとしたのですが、
(1)は表示されて、(2)は単なる文字列になっているようでした。
\x{}といった表記ではバイナリにならないのでしょうか?
また、バイナリにする場合、""での設定やpack()など色々あると思うのですが、
処理が速いのはどの方法になるのでしょうか?
(1)my $sun = "\xF8\x9F"
(2)my $sun = "\x{F89F}"
0271nobodyさん
2011/11/01(火) 13:02:20.96ID:???http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators
> If the number is 256 (0x100, 0400) or above, Perl interprets it as a Unicode code point
> and the result is the corresponding Unicode character.
http://www.nttdocomo.co.jp/service/developer/make/content/pictograph/basic/
よって iモードの Shift_JIS で "\xF8\x9F" に割り当てられている絵文字を
iモードの UTF-8 のページで出したければ "\xEE\x98\xBE" 。
(Perl用語で言うところの) Unicode 文字列なら "\x{E63E}" 。
参考ページ:
>>2
http://perldoc.jp/docs/perl/5.10.0/perluniintro.pod
http://search.cpan.org/dist/Encode-JP-Mobile/lib/Encode/JP/Mobile.pm
http://search.cpan.org/dist/Unicode-Japanese/lib/Unicode/Japanese/JA.pod
0273nobodyさん
2011/11/01(火) 15:20:02.29ID:???x => [ 'a', '1' ],
y => [ 'b', '2' ],
z => [ 'c', '3' ],
};
my $b = map{}???
上記で$bに下記のようにセットするにはmapのところをどのように書けばよいでしょうか。
$b = {
x => 'a-1',
y => 'b-2',
z => 'c-3',
};
0274nobodyさん
2011/11/01(火) 15:36:36.16ID:???$b = { map { $_ => "$a->{$_}[0]-$a->{$_}[1]" } keys %$a };
# or
$b = { map { $_ => join '-', @{ $a->{$_} }[0,1] } keys %$a };
0275nobodyさん
2011/11/01(火) 15:59:53.49ID:???my $b = { map ref $_ ? join('-', @$_) : $_, %$a };
my $b; %$b = map ref $_ ? "$_->[0]-$_->[1]" : $_, %$a;
0277nobodyさん
2011/11/01(火) 17:31:41.93ID:???0278273
2011/11/01(火) 17:56:13.77ID:???テンプレートファイル内で、「html出力させないコメント」というのは書けないのでしょうか?
例えば下記の#の行はoutputで出力させないといった動作をさせたいです。
もしできないのであれば、使用されている皆さんはコメントを書きたい時、<!-- -->で対応しているのでしょうか?
<html>
<head>
<title>hoge</title>
</head>
<body>
fuga<br>
#コメントを書きたい
</body>
</html>
0279nobodyさん
2011/11/02(水) 04:52:21.99ID:???無かったはず。
ただし、new()の際にfilterを設定することで、前処理を行うことが出来る。
これを利用して、特定の文字列を置き換える(削除する)ことは可能。
詳細はドキュメントを参照されたい。
HTML::Templateは痒いところに届かないというか、痒み?何それ? って作り方だからなあ。
非PGのデザイナーにテンプレートファイル作りを任せるなら、これくらいじゃないと使ってくれなかったりするがw
0282デフォルトの名無しさん
2011/11/03(木) 03:59:56.91ID:???おみそれいたしました。
丸暗記だと応用が効かなくて行き詰ってしまうことが多いです。
0283nobodyさん
2011/11/03(木) 20:45:59.15ID:???Perlについての質問箱 49箱目
http://hibari.2ch.net/test/read.cgi/tech/1319953460/100-102n
Windows 2000、Activeperl 5.8 の環境で、
use Socket;
socket(・・・);
connect(・・・);
な感じでインターネット上のwebサイトからページを取得してるんだけど、
サイトの応答が遅いとき、応答が帰ってくるまでCPU負荷が100%近くになる。
これってどういった原因が考えられますか?
あるいは仕様でしょうか。
PCのスペックはWin2000を使っているというあたりで想像いただける通りかなりしょぼいですが、それにしても負荷高すぎかな、と。
Activeperlのバージョン上げれば直るのかな…
0284nobodyさん
2011/11/03(木) 22:20:35.11ID:???あるいは追加して、それを使うようにして対処。
今使っているLANカード+ドライバが割込みに対応した作りではない
のでCPU負荷が100%近くになっている。
0285nobodyさん
2011/11/03(木) 22:28:37.56ID:???端折るな
ちなみに Pentium3 1GHz、ActivePerl 5.12 のうちの環境は sleep 使うと CPU 占有率が 80-90% とかになる。
0286nobodyさん
2011/11/03(木) 22:52:53.96ID:???LANカードの問題ですか。
ノートだから交換や追加は難しいですね…
>>285
すみません。
Pen4M1.8G(但し1.2G動作)です。
ありがとうございました。
0287285
2011/11/03(木) 23:57:43.11ID:???デスクトップの Pentium4 ですら同じくロックまで落とすと Pentium3 に負けるからなぁ・・・
ただそれ以外の部分 (チップセットとかね) は Pentium3 世代よりも上だから、CPU はボトルネックとは考えられないか。
古いノートだったら 10Base-T とかの可能性も否定できないよね。
あとアンチウイルスとかスパイウェア関連は外すのも手。
TCP/IP の入出力を監視してたりするので負荷が掛かるのは当たり前だから。
定期的にスクレイピングのために Perl スクリプト走らせてるんだけど、
今見たら 60-80% の CPU 占有率だった。
これ以上はハードとか OS の問題になってきそうなのでスレ違いどころか板違いすらにもなってくるかな?w
その前に色々書いておく。
特に大事なデータが無ければ OS 再セットアップして、アンチウイルスとかスパイウェア関連は入れない。
もし直らなければ、ノートの製造が AOpen や Acer などの安かろう悪かろう的なメーカーでないか確認。
なおかつ使用チップセットが Intel 以外だった場合は遅いのはハードウェアが原因と見て良いかと。
上記以外のメーカーで Intel チップセットの場合は >>284 が書いたとおり LAN カードが怪しいかも?
USB の LAN もあるけど、そもそも負荷が高いので使っちゃだめ。 32bit CardBus が付いてるならその LAN カードを。
これでも駄目なら投げ捨てる。
0288nobodyさん
2011/11/04(金) 00:21:01.33ID:???0289283
2011/11/04(金) 08:21:22.37ID:???ハードやOSの問題だと板違いですね。
ただ、ブラウザでアクセスしている場合にはそういった問題は発生しないのでperl側の問題という線も捨てきれないのかな、と。
ちなみに、常駐系のソフトは全て停止しても状態は同じでした。
とりあえず、まずはLANカードの線で、何か試す方法がないか検討してみます。
>>288
ちょっとハードルが高いですね。
Linixの知識は全くないので、そこにたどり着くまでの時間が取れそうにないです。
改めてありがとうございました。
0290278
2011/11/04(金) 11:25:15.47ID:???最初に任意のルーチンの割り込みができるんですね。
いまバタバタしてるので時間が空いたらじっくり調べてみます。
ありがとうございました。
0291nobodyさん
2011/11/05(土) 11:43:23.98ID:???BIOSのIRQの設定も板違いですね。
そうだとするとLANカードを変えても同じことになりそうなので。
0292nobodyさん
2011/11/06(日) 08:06:31.58ID:???こうゆう文字列でマッチさせようとしたときに、何も考えずに書けば
/$test_aiueo/
だけど、これじゃ $test_aiueo っていう変数は無いからエラーになるわけで、
$test という変数の直後に半角英数でマッチさせるにはどうすれば良いのでしょうか?
0293nobodyさん
2011/11/06(日) 08:12:06.72ID:???/${test}_aiueo/
こうゆう書き方できるんですね。
$hash={} を %{$hash} とか普段から使ってるクセに、なんですぐに書けなかったんだろう。。。
0294nobodyさん
2011/11/06(日) 10:03:01.99ID:???0295nobodyさん
2011/11/06(日) 12:03:43.66ID:???処理ごとにデバッグプリントすれば可能ですが、非現実的だし、
後々デバッグプリントを消すのも手間なので、Perlでどこの部分で
時間が掛かってるとかのデバッグというか、トレースというか、
そういう事は出来るモジュールなどはあるのでしょうか?
0296nobodyさん
2011/11/06(日) 12:30:01.91ID:???http://perldoc.jp/docs/perl/5.10.1/perlfaq3.pod#How32do32I32profile32my32Perl32programs63
0297nobodyさん
2011/11/07(月) 11:15:35.01ID:???ありがとうございます。
#!/usr/bin/perl -d
use Devel::DProf;
で tmon.out を吐かせた後に dprofpp で得たいデータが取れました。
0298278
2011/11/07(月) 14:03:34.80ID:???>>278の件は解決できました。
ありがとうございました。
もう一つ質問があります。
TMPL_INCLUDEのパスをcgi上でコントロールしたいのですが、下記のようなテンプレートはNGとなっています。
<TMPL_INCLUDE NAME="<TMPL_VAR NAME=incPath>">
そこでfilterを使って表現しようと思うのですが、どのようにすればよいでしょうか?
※cgi内の変数がfilter内のサブルーチンでそのまま使用できるのは確認できています。
my $incPath = './tmpl/inc.tmpl';
my $template = HTML::Template->new(
filename => './aaa.tmpl',
filter => sub{
my $ref = shift;
$ref =~ s/(\$[a-zA-Z0-9_]+)/eval($1)/g; #←ここの置換後の表現が思いつかないのでやりたいことのイメージを書いています。
},
);
--- template ---
<TMPL_INCLUDE NAME="$incPath">
0299298
2011/11/07(月) 17:02:01.60ID:???すみません。この一文はわかりづらいですね。
この文は無視してください。
0300nobodyさん
2011/11/08(火) 02:25:10.62ID:???コメント削除の件は解決して何より。
インクルードファイルを動的に制御するなら、素直に<TMPL_IF>や<TMPL_UNLESS>で分岐させるのが良いのでは。
もしくは、CGI側で別途に読み込んで、<TMPL_VAR>で吐き出すか。
インクルードファフィルのルートディレクトリを指定するだけなら、
new()の時に path を指定することでコントロールできるっぽい。
【余談】
HTML::Templateは条件分岐がマトモに書けないから、可能なら拡張モジュールの利用も考えてみて。
自分は使ったことがないんだけど
http://search.cpan.org/~samtregar/HTML-Template-Expr-0.07/Expr.pm
とかどうだろうか
0301298
2011/11/09(水) 16:21:33.08ID:???もしかして279の方ですかね?
またまたご意見ありがとうございます。
色々試行錯誤しましたが、今回はfilterに下記のようにして対応することにしました。
$replace_ref = {
HENSUU => 'hogehoge',
};
filter{
$ref = shift;
$$ref =~ s|\[\#.*?\#\]||gxms; # [# 〜 #]までをコメント
$$ref =~ s|\[\%\s+([a-zA-Z0-9_]+)\s+\%\]|$replace_ref->{$1}|gxms; # [% 〜 %]を置き換え
}
----- html -----(どんなフォーマットがHTMLに影響ないかわからなかったので変数置き換えはtemplate-toolkitを参考)
<html><body>
[# コメント #]
変数=[% HENSUU %]
</body></html>
---------------
HTML::Template::Exprいいですね。
HTML::Template::Proにも取り込まれてるんで、高速化したい時には置き換えが簡単そう。
HTML::TemplateはIF文が貧弱すぎる。
0302nobodyさん
2011/11/15(火) 20:21:14.83ID:???-------------------
<span class="availGreen">在庫あり。</span> <a href="/gp/help/customer/display.html?&nodeId=915624">
在庫状況</a>について<br /> この商品は、<b><a href="/gp/help/customer/display.html?ie=UTF8&nodeId=64
3004">Amazon.co.jp</a></b> が販売、発送します。 ギフトラッピングを利用できます。
-------------------
この文字列(実際には改行は入っていない)から、「Amazon.co.jp」(他の店名になることもある))の部分だけを取り出す為に
if ( $_ =~ />(.*?)<\/a><\/b> が販売/ ) {print $1;}
とすると、
-------------------
在庫あり。</span> <a href="/gp/help/customer/display.html?&nodeId=915624">
在庫状況</a>について<br /> この商品は、<b><a href="/gp/help/customer/display.html?ie=UTF8&nodeId=64
3004">Amazon.co.jp
-------------------
までが拾われてしまいます。
if ( $_ =~ /この商品は、<b><.*?>(.*?)<\/a><\/b> が販売/ ) {print $1;}
とすることにより、目的は達成できたのですが、何故最初のがダメなのかが良くわかりません。
なお、直前の「643004」の部分は場合によって変わるのでキーワードには出来ません。
0303nobodyさん
2011/11/15(火) 20:47:48.16ID:???.*?にはタグ(<.*?>)を含まないなんてルールはないし
0304nobodyさん
2011/11/15(火) 21:30:08.07ID:???.*? か .* かで影響されるのは "</a></b> が販売" の部分の探し方であって、
マッチすること自体が確定したら最初の ">" の位置は動かない。
関係ないが、この手の情報取得は可能ならまずAPIを検討すべき。
泥臭くスクレイピングするとしても、よほど高速性を重視するとかでなければ
正規表現じゃなくてTreeBuilderとかでDOMをパーズするほうが安全。
0305nobodyさん
2011/11/16(水) 00:15:29.63ID:???ありがとう。
最初の「>」で拾ってしまうんですね。
高速性の必要なものではなく、いくつかの商品の価格変化をログ取ってるだけなので、
API利用するところまでは考えてません。手続きめんどいので。
0306nobodyさん
2011/11/16(水) 06:46:36.29ID:???拾いたい箇所が1ファイルに1箇所くらいで構造も単純ならパターンマッチングの方が
手っ取り早いよね。
でも構造が繰り返しだったりややこしかったりする時はWeb::Scraperとか便利よ。
>>304
パーズ? パース? ← parse
0307nobodyさん
2011/11/16(水) 07:50:11.05ID:???0308nobodyさん
2011/11/16(水) 09:59:12.27ID:???0309304
2011/11/16(水) 10:04:04.24ID:???調べてみたらイギリス英語系の辞書だとパーズだけど、アメリカ英語でパースが一般的みたいだからそっちのほうがいいや。サンクス
0311nobodyさん
2011/11/16(水) 16:34:39.13ID:???2つ発音されるね。
parseの意味 - 英和辞書 - goo辞書
http://dictionary.goo.ne.jp/leaf/ej3/61513/m0u/parse/
0312nobodyさん
2011/11/16(水) 16:52:26.25ID:???勉強になったぜ。
0313nobodyさん
2011/11/16(水) 23:26:19.41ID:???今は for で回して push してるんだけど、
@lines = <$fh> x 3;
みたいな感じで書けたら落ですよね。。。
0314nobodyさん
2011/11/17(木) 00:05:31.82ID:???#!/usr/bin/perl -w
use strict;
my @line = (scalar <DATA>, scalar <DATA>, scalar <DATA>); # 幾つ?
print @line, "---\n"; seek DATA, -12, 1; @line = ();
@line = map scalar <DATA>, 0..2; # 0から2とは?
print @line, "---\n"; seek DATA, -12, 1; @line = ();
push @line, scalar <DATA> while @line < 3; # 意図が分かりやすい
print @line;
__DATA__
foo
bar
baz
quux
0315nobodyさん
2011/11/17(木) 00:27:12.12ID:???ありがとうございました。
0316nobodyさん
2011/11/17(木) 00:48:38.68ID:???ループを避ける事自体が至上命令ならば >>314 の1番目か
$/ = \64; # 充分なサイズのバッファ
my @line = <DATA> =~ /^(.*\n)(.*\n)(.*(?:\n|\z))/;
0317nobodyさん
2011/11/17(木) 00:53:27.15ID:???0318nobodyさん
2011/11/17(木) 09:42:10.49ID:???1行で簡潔にできたら嬉しいよね〜
っていう程度です。
0319nobodyさん
2011/11/18(金) 00:09:48.76ID:???そいつは自分自身がループして同じ内容を必要な行数分タイプしてたっけ。
0320nobodyさん
2011/11/18(金) 09:22:43.24ID:???ループ展開とかやったっけな。アセンブラで。
0321nobodyさん
2011/11/18(金) 10:21:10.82ID:???0322nobodyさん
2011/11/18(金) 21:40:15.63ID:1hunDax1ダブルクォート文字列で使われるエスケープシーケンスと
マッチ演算子の中の正規表現で使われるエスケープシーケンスは
よく使われる改行文字(\n)やタブ(\t)などが両方にあるので
厳密に言えば違うけれども、大体同じものと理解していいのでしょうか?
それとも全く違う、あるいは全く同じものなのでしょうか?
0323nobodyさん
2011/11/18(金) 21:56:27.18ID:???それを解釈するコードは文字列と正規表現では別物だと考えて
ください。
0324デフォルトの名無しさん
2011/11/19(土) 13:39:08.87ID:???別物だから区別して書いてあって、本に2回出てくる。
でも覚えやすいように同じ記法にしている。
0326nobodyさん
2011/11/26(土) 22:25:41.09ID:???@ttp://example.com/index.cgi/1/2/
と、PATH_INFOで渡すのと
Attp://example.com/?a=1&b=2
と、.htaccessに「DirectoryIndex index.cgi」を書いてPOST風?(呼び方がわからない)で取得する方法があると思いますが、
みなさんどちらを使っていますか?
どちらを使おうか悩んでいます。
(最初、index.cgiを消してPATH_INFOで渡せればすっきりするなと思いましたが、それだとttp://example.com/1/2/となって
index.cgiを読ませる場所とPATH_INFOの切り分けができないと気づいて今に至っています)
個人の好みになるかもしれませんが、こっちをこんな理由で使っているという感想などいただけたら参考にしたいと思います。
ちなみにformタグではGETを使用しています。
0327nobodyさん
2011/11/26(土) 22:49:02.08ID:???http://txqz.net/blog/2007/06/16/1641
0328nobodyさん
2011/11/26(土) 23:38:20.62ID:zFlJhwY9Internal errorになってしまいます。なにか呼び出し方があるのでしょうか
system '/bin/ls', "-la";
print "Location: index.html\n\n";
0329nobodyさん
2011/11/26(土) 23:51:55.90ID:???0330nobodyさん
2011/11/27(日) 00:07:55.85ID:???0331nobodyさん
2011/11/27(日) 00:56:06.95ID:E4v1+esLとか出てます。Systemを実行しなければこのメッセージは出ないです。
0332nobodyさん
2011/11/27(日) 01:07:18.85ID:???だからヘッダがどうなってるか見ろ
0333nobodyさん
2011/11/27(日) 01:44:44.18ID:E4v1+esL0334nobodyさん
2011/11/27(日) 02:47:47.23ID:???真っ先に HTTP ヘッダがなければCGIとして機能しないでしょ。
エラーになるのは当たり前。
でもって Location: で飛ばしてるんだから system '/bin/ls', '-la'; は全く意味がない。
仮に print "Location: index.html\n\n"; の次に置いても無視されるだけ。
そのCGIの目的(用途)は何なの?
0335nobodyさん
2011/11/27(日) 03:52:11.45ID:???問題は system の出力先が標準出力、つまり普通に print するのと同じところに行ってるせいで、
スクリプトからサーバーへ渡される出力が
total 8
drwxr-xr-x 2 nobody nogroup 4096 Nov 27 00:00 ./
drwxr-xr-x 3 nobody nogroup 4096 Nov 27 00:00 ../
Location: index.html
みたいになってて、
サーバーとしては改行2つより前の部分は HTTP ヘッダとして解釈しなきゃいけない、
でも Location 以外の行は正しい HTTP ヘッダではない。
だからそこで内部エラーとして止めてる、ってことでは?
CGI 試す環境ないんで推測だけど。
0337nobodyさん
2011/11/27(日) 23:08:22.74ID:???「ヘッダ」が分からないので見ろといわれてる対象が分かっていない
に一票。
つまり
print "Location: index.html\n\n";
は、理解して書いているのではなく、他のプログラムのコピペ。
0338nobodyさん
2011/11/27(日) 23:27:05.03ID:???0339nobodyさん
2011/11/28(月) 01:55:16.13ID:???0340326
2011/11/28(月) 15:55:21.96ID:???ありがとうございます。
作成中のものはエントリのページなのでPATH_INFOで渡したいと思います。
この場合、URLからindex.cgiを消して尚且つPATH_INFOを取得するには
どのようにしたら良いのでしょうか?
ttp://example.com/index.cgi/1/2/
を
ttp://example.com/1/2/
にして、index.cgiを実行し、PATH_INFOから"/1/2/"取得したい
0341326
2011/11/28(月) 16:21:49.46ID:???を実現するためググってみました。
ttp://hatsugen.zakzak.co.jp/qa6717936.html
↑ここの「ANo.3」で下記のように書かれていました。
たとえば、httP://hoge.com/A/B というURLをブラウザに与えると、ブラウザはHTTPサーバー(hoge.com)に対して、/A/Bという
ファイルを送れと要求します。
サーバーはこれを探しますが、Bというファイルがなければ、それをディレクトリとみなして/A/B/として/A/B/を探します。
それが存在していれば開いてみます。
httpd.confや.httaccessで下のように指定してあれば、
<IfModule dir_module>
DirectoryIndex index.html index.htm index.cgi index.sh
</IfModule>
前から順番にファイルを探して表示します。いずれもなければ、またこれも設定にしたがってディレクトリ内のファイル一覧を表示するか、
エラーを返すか、その指定もなければ/B/を切り捨てて環境変数に格納し、/Aについて同様な処理を繰り返します。
つづく
0342326
2011/11/28(月) 16:23:22.87ID:???そこで下記を行いました。
@ttp://example.com/ の階層にindex.cgiと下記一行を書いた.htaccessを置きました。
DirectoryIndex index.cgi
Attp://example.com/で、ttp://example.com/index.cgiにアクセスしたことを確認しました。
Bttp://example.com/a/にアクセスするとエラーになりました。
ttp://example.com/a/というディレクトリは存在していないので、
一つ上がったttp://example.com/のindex.cgiを探しに行くのではないかと思うのですが
何か間違えているのでしょうか?
どこをどうすればできるようになるのか教えてください。
0343nobodyさん
2011/11/28(月) 16:28:04.90ID:???>>1
Apache〜嗜みとして〜 Part3
http://hibari.2ch.net/test/read.cgi/php/1043851302/
【Apache】mod_rewriteについて語るスレ
http://hibari.2ch.net/test/read.cgi/php/1023791370/
0345nobodyさん
2011/11/30(水) 10:29:57.17ID:gvpuZTLB今行ったら見つかりませんでした
どのページの、どの部分からダウンロードにいけるのでしょうか?
また、以前ダウンロードした時はは内容が英語でした
出来れば日本語版があればそちらをダウンロードしたいのですが、どこか内でしょうか?
0346nobodyさん
2011/11/30(水) 10:51:48.72ID:???0347nobodyさん
2011/11/30(水) 21:09:58.63ID:???そういうオプションとかってデフォルトの機能にはないですよね?
出力されたhtmlファイルを開く→先頭に書き足す→末尾に書き足す→上書き保存
という処理をするスクリプトを書くということ以上の解決策ってないですよね?
0348nobodyさん
2011/11/30(水) 23:31:46.18ID:???先頭を書き出す→markdown.plを呼び出して結果を書き出す→末尾を書き出す→保存
でいいんじゃね?
0349nobodyさん
2011/12/03(土) 17:25:31.47ID:???>上書き保存という処理をするスクリプトを書くということ以上の解決策
何をもって上/下と言っているのか分からんが、Markdown.pl に書き足す
方法はなぜ思い浮かばないのか。
0350nobodyさん
2011/12/03(土) 19:26:36.05ID:???まあMarkdown.plはいじらないでそのまま使う方が自然だろう。
やるとしたら別名にリネーム(コピー)してから自分専用にカスタマイズ、かな。
ついでに350ゲト
0352nobodyさん
2011/12/05(月) 11:39:58.61ID:???下記の@の所って$ENV{'HTTP_REFERER'}が空だったら$refererはundefになりますよね?
ということはAの $referer eq "" でワーニングになるから、
修正したほうがいいですよね??
if ($referer eq "") { #→ ×
if (defined($referer) && $referer eq "") { #→ ○
#####################################################
# Copyright 2009 Google Inc. All Rights Reserved.
use URI::Escape;
use constant GA_ACCOUNT => 'MO-1887809-14';
use constant GA_PIXEL => '/ga.pl';
sub google_analytics_get_image_url {
my $url = '';
$url .= GA_PIXEL . '?';
$url .= 'utmac=' . GA_ACCOUNT;
$url .= '&utmn=' . int(rand(0x7fffffff));
my $referer = $ENV{'HTTP_REFERER'}; #@
my $query = $ENV{'QUERY_STRING'};
my $path = $ENV{'REQUEST_URI'};
if ($referer eq "") { #A
$referer = '-';
}
$url .= '&utmr=' . uri_escape($referer);
$url .= '&utmp=' . uri_escape($path);
$url .= '&guid=ON';
$url =~ s/&/&/g;
$url;
}
0353nobodyさん
2011/12/05(月) 13:46:44.74ID:???my $referer = exists $ENV{'HTTP_REFERER'} ? $ENV{'HTTP_REFERER'} : '-';
Referer: 0 は明らかに無効だから単に
my $referer = $ENV{'HTTP_REFERER'} || '-';
あと、uri_escape()でやるならURIつかったら
sub {
my $uri = URI->new(GA_PIXEL);
$uri->query_form(
'utmac' => GA_ACCOUNT,
'utmr' => $ENV{'HTTP_REFERER'} || '-',
...
);
return $uri;
}
0354352
2011/12/05(月) 15:34:16.27ID:???my $referer = $ENV{'HTTP_REFERER'} || '-';
が自分にはしっくりきました。
ありがとうございます。
よくみたら $query は使ってないですね。
よくみてたら何か色々おかしなコードだ。
とりあえず感謝です。
0355Web初級
2011/12/08(木) 16:43:00.58ID:bceXKvCi職場では私しかDTPの経験がありません(Webかじったのも私一人)。
イラストレーターからドリームウエバーへ、やっと持って来れるようになりましたが、
コーディングがさっぱり上手く行きません。2度ほどWebスクールにデータ持参で習いに
行きましたが、真似してもさっぱり上手く出来ません。
これじゃ何回習っても、金捨てに行くようなもので困っております。
簡単なビジュアルなので、ハイレベルな技術はいらないと思います。
分かりやすい本とかあれば最高なんですが、なにか名案ありませんか。
よろしくお願いします。
0357Web初級
2011/12/08(木) 18:06:56.56ID:bceXKvCinobodyさんが即答するスレでしたか、暗号のようなQAで驚きました。
おみそれしました。
0360nobodyさん
2011/12/09(金) 10:54:15.39ID:???そりゃコーディング違いだ。
私もコーディングは外注した方が幸せになれると思う。そんな付け焼き刃じゃどうにもならんでしょ。
0361Web初級
2011/12/10(土) 08:46:00.83ID:Suxg5Gi2「3週間でマスターWebデザインの教室」の2冊、これ見て仕上げる
しかありません。やっと再就職して、よこされたのがこの仕事。
試用期間中だし、だれもウエブの事は知りません。
やるしかありません。
0364nobodyさん
2011/12/10(土) 09:49:06.29ID:???. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チラシの裏にでも書いてろ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
0365nobodyさん
2011/12/10(土) 16:44:40.44ID:???なかなか通じません。
チラシの裏エディタを紹介しておきますね。
(私も愛用しています)
ttp://yuukiremix.s33.xrea.com/chirashi/
>>361
たぶん、それはくびっていう意味だと思うけど。
0366nobodyさん
2011/12/10(土) 17:53:31.12ID:bJAhMBsmWEBページにラジオボタン、チェックボックスを配置して、
保存ボタンで各項目のチェック状態をDBに保存して、
次回ページを表示するときに、前回のチェック状態を再現させたいのです。
DBに保存まではできたのですが、ラジオボタンとかのチェック状態を設定するにはどうやればいいのでしょうか?
0367nobodyさん
2011/12/10(土) 18:04:10.96ID:???ラジオボタンやチェックボックスなら該当するinput要素に、
checked="checked"
ってすればいいとおもいます。
0368nobodyさん
2011/12/10(土) 18:14:29.61ID:bJAhMBsmHTMLのコードを出力する時に
if (checked) {
print <input type="radio" checked="checked">
else {
print <input type="radio">
}
とかやるってことですか?
数が多くてすごい大変なんだけど、これ普通のやり方なのかな
0369nobodyさん
2011/12/10(土) 18:16:11.86ID:phxklYwZどんだけ馬鹿なの?消えろ
おおwwwwだっせーーーーーーーwwwwwwwwwwwwww
そんなチェック状態とか簡単に考え付くだろwwwwwwww
引き継げばいいだけなのにwwwwwwwwwww
頭悪すぎ
自分=ウサギ
お前ら=カメ
まじまだまだ寝てても平気みたいだね
0370nobodyさん
2011/12/10(土) 18:18:06.55ID:phxklYwZ低レベルすぎる
やっぱりセンスが違うんだなあ
0371nobodyさん
2011/12/10(土) 18:23:07.58ID:???ヒアドキュメントに変数埋めといて、該当箇所だけにchecked="checked"が展開されるようにするとか、
input要素はループで生成するようにしておいて、if文減らすとか、とか、
0372nobodyさん
2011/12/10(土) 18:27:04.72ID:???ループで処理かなぁ。
0373nobodyさん
2011/12/10(土) 21:39:06.91ID:???0374nobodyさん
2011/12/10(土) 22:10:18.53ID:???0375nobodyさん
2011/12/11(日) 11:50:08.36ID:???0376nobodyさん
2011/12/11(日) 12:15:53.32ID:???0377nobodyさん
2011/12/11(日) 16:38:26.87ID:???Perlでやれって言われたの?
今から短時間で実装するならPHPしかないんじゃないの。
Perlでテンプレートエンジンとウェブアプリケーションフレームワークの環境構築とかしてる時間はたぶんないんでしょう?
0379nobodyさん
2011/12/12(月) 11:29:18.56ID:8Y5nZNmR質問がざっくばらんすぎなのでは?
0380nobodyさん
2011/12/12(月) 12:26:49.55ID:???アバウトすぎるとでも言いたいんだろうけど
0381nobodyさん
2011/12/12(月) 14:15:46.02ID:???そのページをperlで取得しようと思っています。
ですが何度やっても401が帰ってくるばっかりでまったく進展しない・・・
#!/usr/local/bin/perl
$|=1;
print "Content-type: text/html\n";
print "\n";
#*一度authorization_basicでやってみました。*
#*他のサイトではうまくいったのですが 目的のサイトでは動作しなかった為*
#*ntlmを試しています*
use LWP::UserAgent;
use HTTP::Request::Common;
my $url = '認証が必要なURL';
# Set up the ntlm client and then the base64 encoded ntlm handshake message
my $ua = new LWP::UserAgent(keep_alive=>1);
# $ua->credentials('ホスト:80', '', "???\\ID", 'パスワード');
$request = GET $url;
print "--Performing request now...-----------<br>\n";
$response = $ua->request($request);
print "--Done with request-------------------<br>\n";
if ($response->is_success) {print "It worked!->" . $response->code . "<br>\n"}
else {print "It didn't work!->" . $response->code . "<br>\n"}
????の部分に思い当たる物が無いので ????\\を消して見てもだめでした。
どういった動きをしているのか、またなぜ失敗しているのかも負えず・・・困っています
宜しくお願いします
0382nobodyさん
2011/12/12(月) 18:29:36.74ID:8Y5nZNmRちゃんと調べろよカス。
use strict;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => 'http://www.example.com/secret.html');
$req->authorization_basic('fuga', 'hoge'); # 'ID', 'PASS'
my $res = $ua->request($req);
あと credentials はダイジェスト認証用じゃないかなと。
ベーシック認証なら authorization_basic を使う。
「ダイジェスト認証 領域名」 でググれば、知識も深まるかと思います。
ちなみに、僕は HTTP::Request::Coomon を使って $req = GET('http://www.example.com/secret.html'); って
やる方が好きです。
0383nobodyさん
2011/12/12(月) 18:48:35.31ID:???どうもありがとう御座います
やってみましたが401が帰ってきました・・・
何でなんだろう?
WWW-AuthenticateにはNegotiateとNTLMって出てるのにorz
0384nobodyさん
2011/12/12(月) 19:57:09.04ID:???http://perldoc.jp/docs/modules/libwww-perl-5.813/LWP/Authen/Ntlm.pod
領域名の部分をちゃんと指定すれば、最初のコードで認証できるかと。
とりあえずサーバーにIISを使ってるなら、そう書いた方が良いと思う。
0385nobodyさん
2011/12/12(月) 20:04:00.94ID:???すみませんサーバー側でIISを使ってるのかどうか 確認はしたのですが、確かではないのでorz
perlのコーディングとは違う質問で申し訳ありませんが、領域名っていうのはいったい何を指定すれば・・・
クライアント側で調べて分かる物なんでしょうか
0386nobodyさん
2011/12/12(月) 20:39:55.27ID:???0388nobodyさん
2011/12/15(木) 18:36:11.15ID:???セルはAからZ列があってそこから先はAA,AB,ACと続くのはご存知だと思います。
このアルファベットを数字に対応させたいと思ってますがアイディアがでませんのでどなたかご教示くださいませ。
1→A ,2→B,26→Z まではできるのですが( chr($_ + 0x60) )、27→AA,28→AB 以降をどうするかがわからないのです。
よろしくお願いいたします。
0389nobodyさん
2011/12/15(木) 19:08:41.22ID:???0390388
2011/12/15(木) 19:27:18.02ID:???数字が26なら一発でZに、28なら一発でABに変換したいのです。
0391nobodyさん
2011/12/15(木) 20:03:59.53ID:???0392nobodyさん
2011/12/15(木) 20:45:17.94ID:???my $n = shift;
my $al = shift || '';
return $n > 0 ? convert(int(($n - 1) / 26), chr(0x41 + ($n - 1) % 26) . $al) : $al;
}
print convert(28); #=> 'AB'
0394nobodyさん
2011/12/15(木) 21:08:20.48ID:???Spreadsheet::WriteExcel って、行・列ともに数値で指定できなかったっけ?
http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel-2.37/lib/Spreadsheet/WriteExcel.pm#Cell_notation
0395nobodyさん
2011/12/16(金) 07:33:02.00ID:???0396nobodyさん
2011/12/31(土) 11:42:50.17ID:uq+4+jAHcgiに送るデータを
index.cgi?user=foo
ではなく、例えば
http://favstar.fm/tweets/popular
のようにディレクトリ風に送って
CGI側で受け取るにはどうすれば良いんでしょうか?
0397日系アメリカ人 ◆japYJPNx6A
2011/12/31(土) 11:53:18.05ID:???0398nobodyさん
2011/12/31(土) 11:54:05.80ID:???0400nobodyさん
2011/12/31(土) 17:34:33.56ID:ELwS00/V0401nobodyさん
2012/01/02(月) 00:05:58.15ID:xN/cFjEo以下のソースでコマンドプロントから入力しても必ず失敗してしまいます
エラーはなく、perl -cw を使ってもOKになり問題はありませんでした
$datfile = "./add.dat";
open(DAT,"+< $datfile");
flock(DAT, 2);
$lock = <<"EOD";
<html><head><title>ページ</title></head>
<body>認証許可</body></html>
EOD
$line = <STDIN>;
chomp($line);
if ($line eq <DAT>) {
print "$lock";
}
else {
print "認証失敗";
}
close(DAT);
datファイルの中身は「t」という一文字が入っています
詳しい方、教えてください
0402nobodyさん
2012/01/02(月) 00:34:00.94ID:???print によるデバッグがしやすいから、面倒でも最初は変数に入れるクセをつけてみると良いかも。
0403nobodyさん
2012/01/02(月) 07:39:45.76ID:???0404nobodyさん
2012/01/02(月) 09:01:46.53ID:???0405nobodyさん
2012/01/02(月) 09:19:16.84ID:???0406nobodyさん
2012/01/03(火) 02:35:21.75ID:???0407nobodyさん
2012/01/03(火) 08:07:23.54ID:???0409nobodyさん
2012/01/03(火) 08:59:10.49ID:???0410nobodyさん
2012/01/03(火) 11:26:01.27ID:???0411nobodyさん
2012/01/03(火) 11:59:37.15ID:???0412nobodyさん
2012/01/04(水) 19:27:09.19ID:???私が欲しい情報はJavaScriptにより出力されたものであるために、
単純にPerlを用いただけでは難しいと分かりました。
どのように対処すれば、JavaScriptの表示部分を取得できるのでしょうか?
よろしくお願いいたします。
0413nobodyさん
2012/01/04(水) 22:01:40.66ID:???0414nobodyさん
2012/01/05(木) 01:03:58.26ID:???0415nobodyさん
2012/01/05(木) 01:39:51.36ID:???それで見張ればいい。
firefox 入れなくない!っていうなら snooper で見ればいい。
0416nobodyさん
2012/01/05(木) 22:01:42.38ID:???みなさんIDEは何をお使いですか?
今んとこ慣れないEclipseでやろうと
思ってます。
0417nobodyさん
2012/01/05(木) 22:27:56.90ID:???コード補完もリファクタリングもヘルプも
中途半端にしかならないからIDEは重いだけだよ。
0418nobodyさん
2012/01/05(木) 22:34:01.35ID:???最近はブロックの折り畳みとかあるんで、充分強力
0419nobodyさん
2012/01/05(木) 22:54:26.32ID:???効果が薄いようですね。
腹くくってエディタでやります。
0420nobodyさん
2012/01/06(金) 02:05:15.33ID:???モジュール ( .pm) を作ったときって、何かエラーが合った場合に
die でスクリプトを止めてしまってエラーを通知するべきか、
それとも STDERR にエラーを出力しつつスクリプトは止めないようにするべきか、
どちらがオススメのコーディングの仕方なんでしょう?
0421nobodyさん
2012/01/06(金) 02:11:20.73ID:???0423nobodyさん
2012/01/07(土) 06:25:16.35ID:???croak が分からなかったので調べてみた。
呼び出し元が分かる die か。なるほど。
ワーニングには carp か。
ありがとう!
>>422
根本的に文章が読みとれてないですよ。
0425nobodyさん
2012/01/07(土) 13:19:20.03ID:???422が正解だと思うが。
0426nobodyさん
2012/01/12(木) 05:19:37.52ID:???420は場合によりけりということがわかった上で、基本的なスタンスはどっちがいいか聞いてんじゃないの?
俺はプロセス殺すなー
変な値入ってんのに処理続けても意味ないし
warnなんてデバッグでしか使ったことないや
0427nobodyさん
2012/01/12(木) 12:02:21.96ID:???おまえも読解能力の欠陥持ちか。
「場合によりけり」では結局何も答えてないに等しいが、>>422はそんなこと書いてないだろ。
どういう時にどっちを選択すればいいかが簡潔に書いてあるだろ。
0428nobodyさん
2012/01/14(土) 02:03:55.49ID:???2038年1月19日3時14分7秒以降のUNIX時間を取得してみるよりスマートな方法で。
学校の宿題でカレンダーを作ったら2038年2月でずれちゃいました。
0429nobodyさん
2012/01/14(土) 05:41:58.49ID:???日付がどうなってるか確かめればよい
0430nobodyさん
2012/01/14(土) 10:28:47.22ID:???これで充分スマートじゃないか?
0431nobodyさん
2012/01/14(土) 12:11:45.71ID:???本当に知りたいことは、2038年1月19日3時14分7秒以降が扱えるかだろう? (キリッ)
0432nobodyさん
2012/01/14(土) 12:21:34.67ID:???0433nobodyさん
2012/01/14(土) 15:29:38.07ID:???年が4桁で有限なのと同じでしょ。
0434nobodyさん
2012/01/14(土) 15:46:35.43ID:???・Time::y2038 モジュールを使う
・DateTime モジュールを使う
のどれかで解決
0435nobodyさん
2012/01/14(土) 16:24:02.91ID:???"トレーニング" である宿題ではそうすべきではない。むしろ
time_t にさえ依存せず、自力で10桁年カレンダーのような無駄
なものを作って自分自身の糧とすべし。
0437nobodyさん
2012/01/14(土) 18:26:43.69ID:???自分で考えろ。こんな所聞くな。
他の人の労力で解決すんな。
0438nobodyさん
2012/01/14(土) 21:36:35.23ID:???既存モジュールの中身を読んでくれ。
0439nobodyさん
2012/01/14(土) 23:37:55.97ID:???0440nobodyさん
2012/01/15(日) 20:18:01.72ID:???0441nobodyさん
2012/01/15(日) 20:45:40.76ID:???0442nobodyさん
2012/01/18(水) 21:06:05.29ID:???元ファイル aaa.txt
変換プログラム trans.cgi
変換後のファイル bbb.txt
aaa.txt に書いてある「あ$kanaお」を読み込んで
trans.cgi にて$kana = きくけ; として変換し
bbb.txt に「あきくけお」で出力するには、どうしたらいいのでしょうか。
open関数で +< という読み書きでファイルを開いても
空テキストが作成されるだけで、うまくいきません。
どうかよろしくおねがいします。
0443nobodyさん
2012/01/18(水) 21:27:56.62ID:???open(my $outfh, ?>:utf8?, ?output.txt?);
while(my $line = <$infh>){
〜処理〜
print $outfh $line;
}
close($outfh);
close($infh);
0444nobodyさん
2012/01/18(水) 22:19:08.77ID:???http://perldoc.jp/docs/perl/5.10.1/perlfaq5.pod
my %var = (FOO => 'bar');
open my $fh, '+<', $file or die $!;
read $fh => my $text, -s $fh;
$text =~ s/__([A-Z]+)__/$var{$1}/g;
seek $fh, 0, 0;
print $fh $text;
truncate $fh, tell;
close $fh;
open my $sfh, '<', $src_file or die $!;
open my $tfh, '>', $tmp_file or die $!;
while (<$sfh>) {
s/__([A-Z]+)__/$var{$1}/g;
print $tfh $_;
}
close $tfh and close $sfh or die $!;
rename $tmp_file => $src_file or die $!;
0446nobodyさん
2012/01/25(水) 02:08:42.13ID:8GsK3GVUコマンドラインから、
echo "test.txt" | xargs perl -pi -e 's/hoge/HAGE/g'
とすると正しく置換されるのですが、
ブラウザからapacheをとおして、スクリプト内で上記のコマンドを、
`echo "[フルパス]test.txt" | xargs perl -pi -e 's/hoge/HAGE/g'`
や
system "echo ¥"[フルパス]test.txt¥" | xargs perl -pi -e 's/hoge/HAGE/g'"
とするとうまく置換されないのはなぜでしょうか?
またこのケースですとスクリプト内での記述はどのようにするのが適切でしょうか?宜しくお願い致します。
0447nobodyさん
2012/01/25(水) 03:35:55.61ID:???そのユーザ権限でファイルや当該ディレクトリは書き込み可能になっているか
をまずチェック。
0448nobodyさん
2012/01/25(水) 03:57:31.07ID:Arlh9fb/お返事ありがとうございます。ディレクトリとファイルは権限777にして試してみたのですが、
置換されませんでした。あとスクリプト中の文字のエスケープ漏れもみなおしてみたのですが、
結果変わらずでした。さらに調べてみます。ありがとうございます。
0449nobodyさん
2012/01/25(水) 04:06:26.93ID:???エラーは出てないのか
端末でスクリプトを走らせたらどうなるか
0450nobodyさん
2012/01/25(水) 08:23:33.82ID:???0451nobodyさん
2012/01/28(土) 22:01:51.13ID:???sendmailのログでしたorz←
0452nobodyさん
2012/01/29(日) 11:48:32.08ID:???0453nobodyさん
2012/01/31(火) 17:42:02.72ID:???&sub1(qq(asdasdqwdasdasd));
sub sub1
{
while($_[0] =~ /asd/gs )#←@
{
print $_[0];#←@でマッチした中身を出力したいが、subの引数
}
}
こんな感じのプログラムを作ったのですが
$_[0]の中身が更新できなくて困っています・・・
どなたか回避する方法を教えてください!お願いします
0454nobodyさん
2012/01/31(火) 17:56:37.52ID:???↓
/(asd)/gs
あとついでに書き直した。
sub1(qq(asdasdqwdasdasd));
sub sub1{
my $str = shift || '';
while($str =~ /(asd)/gs){
print $1;
}
}
慣れてくれば良いけど、初心者であるうちは $_ をそのまま使わずに関数内で変数を用意して
そこへ格納したほうがいいよ。
0457nobodyさん
2012/01/31(火) 18:52:11.00ID:???0458nobodyさん
2012/01/31(火) 21:02:02.01ID:???auの端末で検索できるものとできない機種があります。
同じ2009年にでたモデルでもできるできないがあります。
例えばCA002はできるけど、K002はだめ。
できないものは、何も検索フォームに入れないで検索してもダメです。
Jcode.pl 2.13でエンコードしてますが、
これが悪いのでしょうか?
どうしたら、文字検索をできるようにできますか?
0459nobodyさん
2012/01/31(火) 21:33:09.50ID:???携帯サイトのWebプログラムを語ろう Part3
http://kohada.2ch.net/test/read.cgi/php/1232544986/
0460nobodyさん
2012/01/31(火) 22:38:52.20ID:???端末が送ってきてる文字コードは本当に希望したものか
0462nobodyさん
2012/01/31(火) 22:57:27.90ID:???0463nobodyさん
2012/01/31(火) 23:06:58.71ID:???初心者スレだしねミ☆
0465nobodyさん
2012/02/01(水) 00:41:51.19ID:???他からデータを持ってきたりとかしない場合には utf-8 で問題無い。
0466nobodyさん
2012/02/01(水) 01:42:35.88ID:???0467nobodyさん
2012/02/01(水) 04:46:09.17ID:???0469nobodyさん
2012/02/01(水) 23:55:30.88ID:???0470nobodyさん
2012/02/03(金) 01:56:38.79ID:???0471nobodyさん
2012/02/03(金) 02:11:46.79ID:???0472nobodyさん
2012/02/04(土) 02:53:54.65ID:???header('Location') で調べれば良いと思ったものの、リダイレクトされた後には Location ヘッダは無く、
max_redirect(0) でリダイレクトさせなければ Location ヘッダを取得できて、リダイレクト先を知ることは出来ました。
max_redirect(0) でアクセスして、Location ヘッダがあれば max_redirect(1) とかにしてアクセス。
リダイレクトが1回で済まなければ max_redirect(2) でアクセスしてみる。
と言ったことをやってるのですが、これが非常に面倒なので結果的にアクセスした URL が取得できればと考えて質問させていただきました。
0473nobodyさん
2012/02/04(土) 03:45:11.91ID:???response_done ハンドラか response_redirect ハンドラに URL を記録する処理を追加する。
http://search.cpan.org/dist/libwww-perl/lib/LWP/UserAgent.pm#Handlers
0474nobodyさん
2012/02/04(土) 09:09:19.56ID:???HTTP::Response オブジェクトは使われた HTTP::Request オブジェクトを丸々保持してるし、
リダイレクト前の Response も previous メソッドでたどれる。
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $res = $ua->get("http://t.co/hog7vmt5");
do { print $res->request->uri, "\n"; } while ($res = $res->previous);
__END__
http://www.asahi.com/national/update/0204/TKY201202030789.html
http://t.asahi.com/5gxs
http://t.co/hog7vmt5
0475473
2012/02/04(土) 09:40:24.08ID:???成程、そっちをみれば良かったのか。勉強になったよ。
use LWP::UserAgent;
my $r = LWP::UserAgent->new->get('http://t.co/hog7vmt5');
print map $_->request->uri . "\n", $r->redirects, $r;
__END__
http://t.co/hog7vmt5
http://t.asahi.com/5gxs
http://www.asahi.com/national/update/0204/TKY201202030789.html
0476nobodyさん
2012/02/04(土) 16:24:03.95ID:???自分には >>474 さんの書き方がしっくりきたので、
これでいこうと思います。
ありがとうございました。
どうでもいい事だけど・・・
do{ }while( ) ってあまり好きじゃないw
ループの条件式が後に来るってーのが、なんか馴染めない (^-^;
0477nobodyさん
2012/02/05(日) 04:49:54.12ID:???> do{ }while( ) ってあまり好きじゃないw
> ループの条件式が後に来るってーのが、なんか馴染めない (^-^;
その方が都合のいいケースもたまにあるでしょ。
最低1回は処理が必要、って時が。たまにね。
0478474
2012/02/05(日) 10:00:34.05ID:???特にブロックの中身が複数行のときは最後の while を見るまでループだってことがわからんのが痛い。
あとまあ、動作も実際気持ち悪い。本物のループブロックじゃないから next とか使えんし。
まともに書く時はちょっと記述増えることになっても普通の while と last とかを組み合わせるほうがいい。
0479nobodyさん
2012/02/06(月) 18:29:54.91ID:ryr2jQRgPerl でアクセスしたいサイトがあるのですが、Perlからhtmlを読むことが出来ません。
IE8の「ソースを表示」では表示できるのですが。
アクセスしたいサイト :http://cinema.pia.co.jp/
Perlのスクリプトの場所 :http://x68000.q-e-d.net/~68user/net/sample/http-client-2.pl
その説明 : http://x68000.q-e-d.net/~68user/net/http-3.html
【実行結果】
perl http-client-2.pl -GET http://cinema.pia.co.jp/
HTTP/1.1 200 OK
Date: Mon, 06 Feb 2012 09:25:43 GMT
Server: Apache
Last-Modified: Fri, 28 Aug 2009 06:41:24 GMT
ETag: "304a0-2-f9082d00"
Accept-Ranges: bytes
Content-Length: 2
Connection: close
Content-Type: text/html
1
で終わってしまい、肝心のHTMLのBODYの部分を表示する事が出来ません。
どなたか分かる方教えてください。
0480nobodyさん
2012/02/06(月) 20:02:58.69ID:???0482nobodyさん
2012/02/06(月) 22:10:48.93ID:???0483nobodyさん
2012/02/06(月) 22:53:24.14ID:???覚えるともう、病みつきです。ftpもこれでやってます。
sendmailだって大丈夫です。
0484479
2012/02/07(火) 01:13:45.57ID:eo0HNsOB>>480 >>481
LWP 使ってみました。http://www.sea-bird.org/doc/Solaris8/Perl_4.html
出来ました
>>482
wget をPerlから?使う方法が分かりませんでした。コマンドとして使うという事なら目的と違います
>>483
上記チュートリアルサイトにて telnet も試しましたが、駄目でした
実は本当にやりたいことは別にあったので、すみませんが質問をやり直させてください
このサイトは、映画レビューサイトなのですが、
http://cinema.pia.co.jp/user/xxxxx/imp/all/ (xxxxxは数字)
にて、各ユーザーのレビュー一覧を見る事が出来ます
(実は自分のレビューを抽出したいだけです)
しかし、Perlからのアクセスでは、LWPを使ってもここではじかれてしまいます
(IE8の「表示→ソース」では見れるが、Perlにprintさせると違うものになっている)
どなたか原因分かりますでしょうか?
0485nobodyさん
2012/02/07(火) 01:25:44.20ID:???0486nobodyさん
2012/02/07(火) 01:48:21.80ID:???use LWP::UserAgent;
use HTTP:Request::Common;
my $ua = LWP::UserAnget->new();
$ua->agent('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)');
my $req = GET('http://cinema.pia.co.jp/user/xxxxx/imp/all/');
my $res = $ua->request($req);
if(open(my $outfh, '>', 'debug.html')){
print $outfh $res->content() || '';
close($outfh);
}
0487479
2012/02/07(火) 03:24:39.22ID:???>>485 駄目でした。ソースの190行目辺りからが違ってきます
上手くいく時は、以下のようになります。良く分かりませんが。
<div id="mainImpMain">
<form method="get" class="common">
<ul class="pagedLink">
>>486
出来ました。ありがとうございました。
0489nobodyさん
2012/02/08(水) 00:00:54.11ID:???自分自身が呼ばれて起動された際の HTTP ヘッダってどうやって確認するのでしょうか?
use CGI の header はヘッダを出力するためのものっぽいし・・・
0490nobodyさん
2012/02/08(水) 00:27:39.96ID:???それはあんたのスクリプトがどうやって呼び出されているかによる。
httpd に Apache を使ってて CGI 経由で呼び出されているなら
Apache のマニュアルと CGI の仕様書を読んでくれ。
http://httpd.apache.org/docs/
http://www.studyinghttp.net/rfc_ja/rfc3875
あと HTTP の仕組みもきちんと理解してくれ。
http://www.studyinghttp.net/rfc_ja/rfc2616
0491nobodyさん
2012/02/08(水) 00:51:03.57ID:???自身のスクリプトが呼ばれた際の HTTP ヘッダを得る方法を伺っているわけでして・・・
0493nobodyさん
2012/02/08(水) 04:36:08.44ID:???↑
最近の若い奴は、物事の尋ね方も知らないのか?ブツクサブツクサ
0494nobodyさん
2012/02/08(水) 07:53:34.31ID:D9+63/xk抜粋するようなプログラムを作成したいと思います。
例えば、次のような文章があった場合、
------------------------------------
ほげほげふがふが
http://example.com/hogehoge1
ほげほげふがふが
http://example.com/satitama1/saitama.html
<!-- link -->
リンク一覧
〜テスト〜 http://example.com/hogehoge2/test.hmtl
〜さいたま〜 http://example.com/satitama2
東京
<!-- /link -->
------------------------------------
結果は
------------------------------------
<a href="http://example.com/hogehoge2/test.hmtl">テスト</a>
<a href="http://example.com/satitama2">さいたま</a>
------------------------------------
のようにしたいのですが、どのように書いたらよいでしょうか?
尚、URLを抜き出す正規表現は次のように書きました。
(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)
環境は、CentOS5 perl5.10です
0495nobodyさん
2012/02/08(水) 10:31:20.53ID:???http://perldoc.jp/docs/perl/5.10.1/perlfaq6.pod#How32can32I32pull32out32lines32between32two32patterns32that32are32themselves32on32different32lines63
my $protocol = qr/(?:https?|ftp)/;
my $format = '<a href="%2$s">%1$s</a>' . "\n";
my $text = do { ... };
my @link;
while ($text =~ m{<!-- link -->(.*?)<!-- /link -->}gs) {
my $links = $1;
push @link, sprintf $format, $1, $2
while $links =~ m{〜(.*?)〜.*?($protocol://[!#-;=?-\[\]_a-z~]+)}gos;
}
print @link;
0498nobodyさん
2012/02/19(日) 12:41:02.48ID:???下着は、妻と娘のお下がりです。
おまけに洋式トイレ、便座が上がってるとか、飛沫が飛んでるとか、いちいち五月蝿いんです。
おかげで、トイレは座ってするように強要され、もうブリーフの前、開ける必要が無いんだからと、私達のお下がりで十分でしょう。と、ここ何年も私の物は買ってくれません。
今では開き直って、ブラジャーもしています。
家に居る時は、娘のスカートを穿き、外出は娘のパンツ、ジーンズ穿いていきます。
娘は、始めは困惑していたが今では慣れ、何でも貸してくれます。
妻の洋服、パンツ、スカートはウエストがちょっときつい。
ストレッチの物は、勝手に着ています。
0500nobodyさん
2012/02/19(日) 15:19:47.97ID:???0501nobodyさん
2012/02/19(日) 17:53:14.70ID:???0503nobodyさん
2012/02/20(月) 14:28:00.53ID:???my $family = Family->new();
$family->husband('>>498'); $family->wife('百合子(仮)'); $family->daughter('楓(仮)');
my $corp = Corp->new(); $corp->salaryCalculation();
$family->income($family->husband(), $corp->salary());
if($family->income($family->husband()) > 250000){
# トイレ
my $toto = Toilet->new();
$toto->type('EU'); # JA or EU
my $urine = $family->urine($family->husband()); # 小便をする
$toto->urine($urine);
if($toto->is_splash()){ $toto->forced_to_sit(1); } # トイレの用足しには座りを強制
# 下着
if($toto->forced_to_sit()){ $family->underwear($family->husband(), $family->underwear($family->wife()); }
# 他の着衣
if($family->underwear($family->husband()) eq $family->underwear($family->wife())){
$family->brassiere($family->husband(), $family->brassiere($family->wife());
$family->skirt($family->husband(), $family->skirt($family->daughter());
$family->jeans($family->husband(), $family->jeans($family->daughter());
}
}else{
$family->underwear($family->husband(), 'BOXER PANTS');
$family->brassiere($family->husband(), undef);
$family->skirt($family->husband(), undef);
$family->jeans($family->husband(), 'EDWIN');
}
>>498 じゃないけど、これが限界っす><
娘や妻への下着のセットは省いたw
0504nobodyさん
2012/02/20(月) 14:29:13.01ID:???0505nobodyさん
2012/02/20(月) 22:20:39.95ID:???0506nobodyさん
2012/02/21(火) 10:11:33.62ID:???× $corp->salary()
○ $corp->salary($family->husband())
サラリーを得るのに名前を渡してなかった><
× if($family->income($family->husband()) > 250000){
○ if($family->income($family->husband()) < 250000){
不等号の向き間違えたw
0507nobodyさん
2012/02/24(金) 16:30:51.95ID:???RSSのデータから、日付時刻とタイトル、そのリンク先URLを一覧にして取得したいと考えています。
・ブラウザに「取得」ボタンなどを表示し、それをクリックすることで最新の一覧を表示
・以前に取得したものは取得しない
先ずは上記2点を実装したいです。
良い方法や参考サイトなどをご教示頂きたいです。
よろしくお願いいたします。
0508nobodyさん
2012/02/24(金) 17:02:28.77ID:???>>1-2
こんなCGI探してます 23
http://kohada.2ch.net/test/read.cgi/php/1219654359/
依頼されたツールを誰かが作るスレ
http://kohada.2ch.net/test/read.cgi/php/1078997682/
金出すからスクリプト作ってよvol.1
http://kohada.2ch.net/test/read.cgi/php/1150508106/
自作CGIを評価するスレ
http://kohada.2ch.net/test/read.cgi/php/1049514428/
自分の作ったCGIスクリプトをデバッグするスレ
http://kohada.2ch.net/test/read.cgi/php/1011174442/
http://kohada.2ch.net/test/read.cgi/php/1036141603/420-435
0510nobodyさん
2012/02/25(土) 00:54:16.96ID:???全国紙では唯一、増税批判の姿勢を取っていた産経新聞に、
昨夏、国税の税務調査が入った。
財務省にとって税務調査は言論統制の最強の武器で、
2009年には朝日、読売が申告漏れを指摘され、
それを機に朝日は増税礼賛へと傾斜し、
読売は財務省幹部の天下りを受け入れた経緯がある。
国税庁という「警察力」は、財務省の最強の武器なのです。
何しろ、徴税というのは「裁量範囲」が広い業務で、
調査官の「判断」により合法とされたり、
脱税とされたりしてしまうのです。
「去年はOKだったのに、今年は何でダメなんだ!」
といった事態は普通に起こります。
0511nobodyさん
2012/02/25(土) 13:09:52.88ID:???まで読んだ
0512nobodyさん
2012/02/27(月) 00:22:44.82ID:???まで読んだ
0513nobodyさん
2012/02/27(月) 00:26:08.69ID:???に見えた
0514nobodyさん
2012/02/27(月) 00:46:41.84ID:???0515nobodyさん
2012/02/27(月) 07:22:57.09ID:???0516nobodyさん
2012/02/27(月) 14:07:22.77ID:???0517nobodyさん
2012/02/28(火) 00:06:11.43ID:0AwG+yg0ttp://findrjp.com/formen/
これはPHPだと思うんですけど
作るとしたらelsifで作る感じでしょうか?
こういうのってすぐ作れますか?
0518nobodyさん
2012/02/28(火) 00:51:16.58ID:???0519nobodyさん
2012/02/28(火) 00:59:39.36ID:???0520nobodyさん
2012/02/28(火) 01:10:42.34ID:???0521nobodyさん
2012/02/28(火) 01:35:37.84ID:0AwG+yg0どうせテメーらにはできないんだろwwwww
って挑発したらヒント教えてくれますか?
elsifは分かります
0522nobodyさん
2012/02/28(火) 10:18:18.70ID:???0523nobodyさん
2012/02/28(火) 14:34:14.89ID:???スクリプト中で開くファイルはスクリプトのあるディレクトリのサブディレクトリに置いており、
全てフルパスで開くようにしています。
昨日初めて mod_perl を入れたところ、FindBin $Bin や Cwd が Apache のディレクトリになっています。
$ENV{'SCRIPT_FILENAME'} を使おうかと思ったのですが、デバッグでコンソールで実行することもあるため
$ENV{'SCRIPT_FILENAME'} は使えません。
$0 では cron でも mod_perl でも CGI でもコンソールでも期待する値が得られました。
./hoge.pl で実行して dirname($0) すると ./ 返ると書いてある場所もありますが、当方では
確認できませんでした。
そこで疑問に思ったのが、$0 を 100% 信用してもいいのか? ということです。
「他のプログラムにより強制的に書き換えられる」 という可能性は今は無しでお願いします。
0524nobodyさん
2012/02/28(火) 14:46:37.42ID:???$0 は perl に与えられた path みたいですね。
HTTPd とかはフルパスを作って渡してくれてるっぽいけど、
コンソールではそうではない。
むぅ。。。
0525nobodyさん
2012/02/29(水) 01:59:02.18ID:???Not a CODE reference 〜
っていうエラーが出た。
そのエラーが言う行は
main();
としかやってないのに。。。
0526nobodyさん
2012/02/29(水) 11:28:36.69ID:???0527nobodyさん
2012/03/02(金) 13:17:08.38ID:???ユーザーによる新規会員登録後、そのユーザー毎にディレクトリを自動的に生成し、
ユーザディレクトリ毎に容量制限を割り当てたいのですが、可能なのでしょうか?
ディレクトリを自動生成するところまではできています。
0528nobodyさん
2012/03/02(金) 18:09:30.62ID:???quota の導入。
quota を入れるなら、システムに実際にユーザーの作成が必要。
0529nobodyさん
2012/03/03(土) 19:01:18.46ID:???ファイル書き込み
現在使用サイズを書いたファイルorDBを更新(現在使用サイズ+これから書き出すサイズ)
}
サイズ取得はuse bytes; $data_size = bytes::length($data); かな。
0530nobodyさん
2012/03/03(土) 19:19:52.03ID:???検索しにくくて、、、、こういうのどうやって探せばいいんでしょう。
perlvarになかったので特殊変数ではないっぽい
0531nobodyさん
2012/03/03(土) 19:27:25.41ID:???0532nobodyさん
2012/03/04(日) 02:19:05.56ID:???0534530
2012/03/04(日) 17:01:24.24ID:???ゼロじゃなくて大文字のオーだったんですね。
OS名ということはシステムからPerlに提供されているものだと思って、%ENVと同じところに記述されているはずって当たりをつけたら
perlvarにありました。
0535nobodyさん
2012/03/04(日) 20:39:47.27ID:???0536532
2012/03/05(月) 05:40:34.80ID:???そんなことはない。$^0 は確かに特殊変数でもなんでもなかった訳だし。
ためしに$^0をプリントさせたらエラーで実行できなかったし。
0537nobodyさん
2012/03/05(月) 22:13:10.43ID:???0538nobodyさん
2012/03/06(火) 01:30:36.74ID:???0539nobodyさん
2012/03/06(火) 01:42:56.66ID:???0541nobodyさん
2012/03/06(火) 02:56:51.45ID:???0542nobodyさん
2012/03/06(火) 09:53:40.98ID:zjKZlebnコード(抜粋)
$html =~ m!"(.*?)" class="Link88" href="/Models.aspx\?ModelID=$id"!s;
print $1;
実行結果
(〜ごっそり省略) <a title="Loeka Creekside Fern Short Sleeve Jersey 2010
$htmlはLWPで拾ってきたHTMLです。数MBくらいあります。
パターンマッチ内の文字列 class="Link88"〜 というあたりはちゃんとマッチしているようですが、
少なくとも Loeka の左にある " が $1 に含まれちゃうのはおかしい気がします。
また不思議なことに、修飾子 /s を外すとちゃんと最短でマッチしてくれます。
0543nobodyさん
2012/03/06(火) 10:29:35.15ID:???$html = q{<a href="b"
id="a" class="Link88"};
$html =~ m!"(.*?)" class="Link88"!s;
$html =~ m!"(.*?)" class="Link88"!;
最短ってのはマッチし始めてからが最短になるんであって、グループ内に"を含まないなんてルールはない
つまり最初の"から class="Link88" ... の手前の"までがマッチするんだよ
0544nobodyさん
2012/03/06(火) 10:46:58.66ID:???m!"(.*?)" class="Link88"!
を
m!"([^"]*?)" class="Link88"!
に変えて解決しました、ありがとうございます。
0545nobodyさん
2012/03/06(火) 12:52:17.96ID:???0546nobodyさん
2012/03/07(水) 23:13:16.91ID:???ttp://kueris.pro.tok2.com/postmail.html
↑これなんですが、ご覧の通り送信ボタンを押すとエラーが出てしまいます。
このエラーは、「Minimal.pm」がCGIフォルダ内に見つからない、という意味だと思うのですが、ちゃんとアップロードはできています。
以下、その他の詳細です。
・check.cgiは問題なく機能しました。パーミッションも設定できています。
・postmail.cgiのみを「cgi-bin」というフォルダに移動させました。
・サーバーはTOK2という所をお借りしています。
・エラーメッセージにある13行目辺りの内容はこんな感じです。↓
9 # モジュール実行
10 use strict;
11 use CGI::Carp qw(fatalsToBrowser);
12 use lib './home/kueris/postmail-utf/lib';
13 use CGI::Minimal;
14 use Jcode;
よろしければお力をお貸しください。よろしくお願いします。
0547nobodyさん
2012/03/07(水) 23:45:53.60ID:???↓
use CGI;
またエラーが出たらお越し下さい。
0548546
2012/03/08(木) 00:14:54.72ID:???ありがとうございます。お陰さまで、無事にそのエラーは解消されたです。
しかし、今度は別のエラーが発生しました。
ttp://kueris.pro.tok2.com/postmail.html
↑今はこのようになっています。
パスが違うのかと思い、色々変えてみましたが、効果はありませんでした。
メッセージにある20行辺りの内容は以下の通りです。↓
19 # 設定ファイル認識
20 require './public_html/postmail-utf/init.cgi';
21 my %cf = &init;
度々で申し訳ありません。
ですが、何卒よろしくお願いします。
0549nobodyさん
2012/03/08(木) 09:26:25.31ID:???で OK
0550546
2012/03/08(木) 12:15:53.18ID:???ご回答ありがとうございます。
試してみましたが、相変わらず同様のエラーメッセージが表示されてしまいます。↓
ttp://kueris.pro.tok2.com/postmail.html
init.cgi自体はちゃんとアップロードされているんですが…。
0551nobodyさん
2012/03/08(木) 12:34:33.65ID:???0553nobodyさん
2012/03/08(木) 17:31:49.63ID:???CGI で動いてない気がしてきた
0554nobodyさん
2012/03/09(金) 01:25:41.39ID:???今勉強中なのですが、
postデータ等をこれで変換すると言うのが良くあるのですが、
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
たしかにこれでうまくいきますし、また基本的な挙動も理解しています。
分からないのは、なぜpack("C", hex($1))/egで、問題無く動くのかということです。
具体的には、
@$1で渡されるのは1バイト分なのに、なぜちゃんと2バイト文字として変換されるのか?
A%([a-fA-F0-9][a-fA-F0-9]の書式でなぜ半角文字が受け渡されるのか?
B例えば”テ”はpostからデータを受け取った時には83eなのに、なぜ問題無く変換されるのか?
C@にかぶりますが、なぜ(pack"c",***)で上手く動くのか? "c*"じゃないのに正常に動いてる。 また、$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/hex($1)/eg;で作った変数をそのままpack"c*",$value;としてもうまく動かないのに、なぜちゃんと動くのか?
いろいろ調べたりしたのですが、よくわかりませんでした。
0555nobodyさん
2012/03/09(金) 02:06:50.72ID:???$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; でググれ。
0556546
2012/03/09(金) 02:23:40.92ID:???>>551様
確認しましたが、問題ありません。
init.cgiは確かに存在しているはずなのですが、認識されていないようです。
試しに、アップロードされたinit.cgiに直接アクセスしてみたところ、404エラーが表示されました。(つづりやパスは間違えておりません)
同じフォルダ内にある別のプログラムにはアクセスできるのですが……。
>>552様
プロバイダによってCGIの設置しやすさは違うのてでしょうか?
もしよろしければ、CGIが動きやすい所をご紹介していただけないでしょうか。
>>553様
申し訳ありません。プログラミングの経験がない私には、「cwdでカレントディレクトリ表示」の意味がよくわかりません。
調べてみましたところ、これはperlにおけるコマンドのことなのでしょうか。
打ち込んでみましたが、上手く動作しませんでした。
0557nobodyさん
2012/03/09(金) 02:58:21.99ID:???相当ぐぐったのですけど、「これで動く」「この処理はこう言う処理をしてる」と言う説明はありそれ自体はわかるのですが、
頭でイメージしたものだとどう考えてもエラーが起きるもしくは正しく動作しないはずなのに、「なぜこの書式で正しく動作してるのか?」と言う疑問の解決は見つかりませんでした。
0559nobodyさん
2012/03/09(金) 03:37:26.52ID:???KENT から落としてきて、
13行目:use CGI;
24行目と26行目をコメントアウトでとりあえず動くよ。
何も入力せずに 「送信する」 ボタンを押せば、動作してるのが確認できる。
http://www11.tok2.com/home/mikisama/postmail-utf/postmail.html
ただし、これは貼らずにいられない。
Q.メールフォームを設置したいのですがsendmailは利用出来ますか?
http://tok2.com/study/faq/04-07.html
これ以上は スレチ (これ以上もクソも初めからスレチだが・・・) なので、改造スレの方へどうぞ。
0560nobodyさん
2012/03/09(金) 03:45:25.88ID:???ただ単なるバイト列として考えればよろし。
今日は SJIS だと 8DA193FA という4バイト。
俺らが見てる 「今」 という文字は、コンピュータからしたら 「8DA1」 という並びのバイト列でしか無い。
そうゆう並びになったから、文字が見えるというだけだ。
0561nobodyさん
2012/03/09(金) 11:31:58.89ID:???0562554
2012/03/09(金) 13:02:31.68ID:???$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;を3つに分解した場合、
例えば、”テストtestだよ”を下の形で出力すると
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/$1/g;
83e83X83gtest82BE82E6となります。これを$hexvalue = hex($value);に
いれようとしたのですが上手くいきません。
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/hex($1)/eg;として出力すると
131e131X131gtest130190130230となり、これをpack("c*",131,e,131,X,131,g,t,e,s,t,130,190,130.230);としても当然上手くいきません。
”test”部分は元々半角小文字なのでs/で式から弾かれてるからとわかったのですが、
カタカナ部分の2バイト目は半角英数混じりなのですがここをちゃんと変換してないようですしそう言うオプションも無いのに、なぜ上手くいくのだろう?とよくわかりません。
カタカナの2バイト目の変換はどこでどのように行っているのでしょうか?
>>554のCは、gで次々代入してるからそう言う事なんだろうか?となんとなくイメージ出来ましたが・・・・・
0563nobodyさん
2012/03/09(金) 13:33:46.30ID:???>@$1で渡されるのは1バイト分なのに
>C@にかぶりますが、なぜ(pack"c",***)で上手く動くのか?
1バイト分のデータ(0x00-0xFF)をpackしてるんだからC*ではなくC
そして文字コードについて全く理解しようとしていない
「テ」の文字コードは「0x83 0x65」で、「e」の文字コードは「0x65」
だから「テ」をパーセントエンコードすると「%83e」であって
「%83」部分さえデコードすれば元の文字に戻るんだよ
ああ壁殴りてぇ
0564nobodyさん
2012/03/09(金) 14:03:28.44ID:???ポイントは3つ。
一つ目。
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; はURLデコードするための一文であるということ。
”テストtestだよ” をURLエンコードすると
”%E3%83%86%E3%82%B9%E3%83%88test%E3%81%A0%E3%82%88”になる。(文字コードはUTF-8)
これをデコードして”テストtestだよ”に戻すのがURLデコード。
つまり$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;という一文の役目。
URLエンコードってのは、例えば「テ」(0xe38386)だったら「%E3%83%86」に変換する。
URLデコートってのは、例えば「%E3%83%86」だったら「テ」(0xe38386)に変換する。
2つ目
正規表現のパターンマッチは一つずつ行われる。
$value="%E3%83%86%E3%82%B9%E3%83%88test%E3%81%A0%E3%82%88"
に対して
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
をやると、
$1に"E3"が入った状態でpack("C", hex($1))が実行され、文字列"%E3"を0xE3に置換。
$1に"83"が入った状態でpack("C", hex($1))が実行され、文字列"%83"を0x83に置換。
$1に"86"が入った状態でpack("C", hex($1))が実行され、文字列"%86"を0x86に置換。
(以下略)・・・
だからhexやpackにまとめて”%E3%83%86%E3%82%B9%E3%83%88test%E3%81%A0%E3%82%88”入れようとするのは間違い。
3つ目
>なぜ上手くいくのだろう?
多くのマルチバイトな文字コードは、「漢字は○○から始まる」とか「ひらがなは××から始まる」っていうルールを持ってる。
だから半角英数とマルチバイト文字が混在しても問題ない。
0565nobodyさん
2012/03/09(金) 14:16:43.38ID:???@とCはだいたいわかりました。ありがとうございます。
下の方は、pack("c*", 131,101);で”テ”になるのは理解しています。
ただhex($1の段階で131eと出力されてるみたいなので、普通に考えるとpack("c*", 131,c);と言う挙動をさせようとしてるように思えるのですが(当然これだと不具合が出ます)、特に修飾子があるわけでもないのになぜcを自動的に101に変換してるのかがわからないのです。
0566nobodyさん
2012/03/09(金) 14:22:20.55ID:???>特に修飾子があるわけでもないのになぜcを自動的に101に変換してるのかがわからないのです。
「e」な。
そんでもってeの文字コードは10進の101。
>普通に考えるとpack("c*", 131,c);と言う挙動をさせようとしてるように思えるのですが
なりません。
pack("C", 131)、pack("C", 101)が順番に動いている。
0567nobodyさん
2012/03/09(金) 14:26:11.34ID:???だいぶよくわかりました。本当にありがとうございます。
一文にする事で内部的に自動的にルールで振り分けてるから厳密に考えようとしてもしょうがないと言う事なのでしょうか。
とすると、あの一文を@%を抜くA10進数に変換B文字コードに変換三段階に分けて記述しようとすると逆に自動では行われないのでかなり膨大な記述になるのでしょうか。
わかりやすくしようと同じ挙動をするものをちょっと書いてみようと思ったら配列を使ったりしないとうまくいかない感じでした。
0568nobodyさん
2012/03/09(金) 14:35:01.38ID:???なるほど。
内部的にはeを101に自動的に変換して文字列を次々に処理してるのですね。
するとそこの部分だけを抜き出して分けて記述しようとすると、やはりeを101に変換させるコードを書かないといけないと言うことですね。
0569nobodyさん
2012/03/09(金) 14:43:54.07ID:???0x83の次にcが来るので”テ”になる
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;の中ではeは未処理のまま0x83をpackで変換した物の後ろに単純にくっつけて出力したと言うことですね
ようやくわかりました。確かに文字コードの勉強が必要でした
よく調べてみます
大変お騒がせしました
0570546
2012/03/09(金) 16:47:52.35ID:???ご回答ありがとうございます。
色々と見落としていた点があったようで、大変失礼致しました。
頂いた助言を元に、サーバーを変えて試してみます。
本当にありがとうございました。
0571nobodyさん
2012/03/09(金) 21:37:28.29ID:???use strict してても全然 strict じゃないw
こんなの怖くて使えないよ('A`)
0572nobodyさん
2012/03/10(土) 01:31:51.91ID:???jpg画像のサムネイル作成(orファイルサイズ圧縮)がしたい。最悪トリミングでも
レンタルサーバ上でサムネイル画像を作成したいと思っております。
GDやImage Magick、Imager、epeg等々が入っていないのですが、
何かうまい方法がありましたら教えていただきたいと存じます。
配置してパスを通すだけで使えそうなモジュールがありましたら・・
0573nobodyさん
2012/03/10(土) 02:30:16.63ID:???あれは20年前のシステムだ。
0576nobodyさん
2012/03/10(土) 06:45:54.03ID:???画像を扱うPerlモジュールは大抵別途本体(バイナリ)かライブラリも同時にインストールされてる必要があるからね
・画像加工できる別サーバを用意し、画像ファイルをそちらのサーバに投げてサムネイルを作ってもらい、それをダウンロードする
Image Magick じゃなくてImageMagick
でもImageMagickも入ってないレンサバって今時あるの? 画像ファイルを(たぶん大量に)アップロードできるくらいだから最安でカスカスのレンサバってことでもないと思うんだが
0577nobodyさん
2012/03/10(土) 08:45:04.67ID:???ありがとう。それらは考えたんだけど鯖分けるなら自分でサムネつくるのと
手間がかわらないのでなやんでる。
うん。ImageMagickはいってない。
0578nobodyさん
2012/03/10(土) 10:20:44.99ID:???0579nobodyさん
2012/03/10(土) 12:27:16.79ID:???perl が駄目でも、PHP で GD が動いてる可能性とかは?
0580nobodyさん
2012/03/10(土) 18:41:09.72ID:???PHPでも組んでみたけどだめでした。
素直にさくらとかWebArenaSuiteX使うべきなんですが、
アプロダなのでちょっとアダルト要素入る可能性があり
ピンク系も許可のレンタル鯖でないとだめかなというのもネックになってます。
0581nobodyさん
2012/03/11(日) 00:39:52.43ID:???HTML::TreeBuilderを使って解析をしているのですが、
どうしても
<span class="hogehoge">fuga</span>
の、fugaが取り出せません。
($tree->look_down('class', 'hogehoge')
ではダメなのでしょうか・・・?ご教授お願いしますm(_ _)m
0583nobodyさん
2012/03/23(金) 00:48:00.36ID:???print "DEBUG1\n";
$html =~ m!<a title="([^"]*?)" class="Link88" href="/Models.aspx\?ModelID=$id" id="ModelLink\d+">.*?<td class="Label11">(.*?)</td>.*?<td class="Label14">(.*?)</td><td class="Label13".*? (\d+)%</td>!s;
print "DEBUG2\n";
このm//の1行だけの処理に、20秒ほどかかることがまれに起きます。
その間 top(1)で見てるとCPU負荷が異常に跳ね上がります。
この行はループ中、LWPで取得するたび$htmlが変わりながら数百回実行されるのですが、
異常に時間がかかる時以外は瞬時に通り過ぎます。
時間がかかる時の $htmlを試しにファイルに吐かせてみましたが、
サイズはせいぜい500KBほどで、
このときのファイルを上記の行だけのテストスクリプトに食わせても
瞬時に終了し異常が再現できません。
原因と対策に何か考えられることはあるでしょうか?
0585nobodyさん
2012/03/23(金) 04:21:38.62ID:SsskDSLSPerl/CGI側でHTTPのエラーコードを返そうと思います。
#!/usr/bin/perl
print "Status: 404 Not Found\n";
exit;
というコードを書いたとき、ブラウザ上では想定通りに404エラーとして表示されるのですが
Apacheのエラーログを見てみると
Premature end of script headers: /home/foo/htdocs/bar.cgi
とだけ表示されます。この時、他のエラーメッセージは見当たりません。
きちんと動いてはいるので問題ないと言えば問題ないのですが、これを出さないようにするにはどうしたら良いでしょうか。
・404エラーではなく、普通にウェブページを出力した場合には問題ありません。
・同じディレクトリでは別のCGIも問題なく動いており、パーミッションはそれらと同値に設定してあります。
・確認してみたところバージョンはApacheが1.3、Perlが5.8です。古い(´・ω・`)
0586nobodyさん
2012/03/23(金) 04:35:43.93ID:???0587nobodyさん
2012/03/23(金) 04:46:19.26ID:SsskDSLSありがとう。でもtext/htmlにしろtext/plainにしろ状況は変わらないんだ
0589nobodyさん
2012/03/23(金) 05:11:05.01ID:???0590nobodyさん
2012/03/23(金) 05:15:18.99ID:???Header2: bar
(空行)
body
仮にボディを空にするとしても、ヘッダとボディを隔てるものは必要ですよね
0591nobodyさん
2012/03/23(金) 05:46:15.14ID:SsskDSLS確かに585のような最小コードでは、exitは有っても無くても変わらないかも。
>>589-590
ステータスコードの末尾を\n\nにすると、
実際にページが送信されている(といっても改行1つだけだが)という扱いになるのか、
デフォルトの404ページが表示されずに、真っ白のページが表示されるようだ。
ちょっと面倒だけど、ブラウザ表示用にエラーページを用意して、
それを出力するようにすれば、とりあえず問題は無さそう。
.htaccessでErrorDocument指定されてるページに飛ばすには、自前でリダイレクトするしか無いのかなー?
0593nobodyさん
2012/03/24(土) 03:29:50.29ID:???トホホは見てないけど、そうなんだ。
正常終了のときは使わない方がいいのかな。まあ、異常終了ならdie使うけど。
0594nobodyさん
2012/03/24(土) 06:48:02.45ID:???0595nobodyさん
2012/03/24(土) 08:52:21.86ID:???いわゆる「省略の美学」以外に積極的な理由があったら、誰か教えて欲しい。
何らかの弊害(速度や安全性の問題など)があるとか、
別の関数等で置き換えるのが普通だとか、
構造化プログラミングにおけるgoto不要論と同じような理由だとか、ヒントでも構わないので。
0596nobodyさん
2012/03/24(土) 09:25:36.37ID:???0597nobodyさん
2012/03/24(土) 09:51:51.12ID:???コンパイル済みのスクリプトをキャッシュして使い回すような環境で
無闇に exit すると良くないケースがある。
http://cast-a-spell.at.webry.info/200801/article_9.html
http://harapeko.asablo.jp/blog/2006/06/29/425898
反対に、書かなくていい場面で書いておくのが「冗長の美学」でしかないのなら、
__END__ なり #exit なりとしておいた方が無害でいい。
0598nobodyさん
2012/03/24(土) 10:10:34.01ID:???なんにせよこれ「いわゆる省略の美学」とは全く別問題
0599nobodyさん
2012/03/24(土) 10:43:09.74ID:???ありがとう。
mod_perlへの移植(と言ってもかなり書き換えることになりそうだ)を考えるなら、
最初からexitを使わないコーディングが重要ってことか。
mod_perlだと通常のexitは使わないほうがいいってのは聞いたことがあったんだけど、
実際にmod_perlは弄ったことがなくて、その感覚が掴めてなかった。
>>596-597
プログラムを1ファイルで済ませたい場合、
自分はメインルーチンソースファイルの先頭に、サブルーチンを最後にまとめて書くことが多いんだけど、
メインルーチンの最後に、以下はメインルーチンとしては実行されませんよと明言するためにexitを入れたりしてた。
0600nobodyさん
2012/03/24(土) 11:58:06.99ID:???use なんちゃら〜
our なんちゃら〜
main();
exit(0);
sub main{
}
sub func{
}
っていう感じ。
0601nobodyさん
2012/03/24(土) 17:23:47.75ID:???0602nobodyさん
2012/03/25(日) 01:57:35.52ID:???0603nobodyさん
2012/03/25(日) 15:34:18.54ID:???ただ基本は >>602 のようにするから滅多に使わない。
冗長の美学を語る人が、1枚に長いスクリプト書いてるのは矛盾を感じる。
0604nobodyさん
2012/03/25(日) 18:03:11.28ID:???そこはスクリプトの規模によるんじゃね?
短めの、他と共通化出来ないサブルーチンが2〜3個あるくらいなら、分けるまでも無いだろう。
0605nobodyさん
2012/03/25(日) 19:02:45.23ID:???0606nobodyさん
2012/03/25(日) 19:14:00.38ID:???2〜3000行ぐらいの中規模のソースを見てみたい。
ってのも、俺の殆どのソースは1枚で済ましてるから、他人ので学習というか知識を深めてみたいから。
0607nobodyさん
2012/03/25(日) 20:04:16.17ID:???0608603
2012/03/26(月) 02:46:50.44ID:???>>605 とは別人なんだが、数百行の小さいソースって、1プロジェクトで数百行ってことかな。
1ファイルで4,5百行くらいって話だとちょっと長いかな。
スクリプトファイルを書くにしても、大体いろいろな機能をクラス(pmファイル)に分けてそいつらの責任に任せたほうがメンテが楽。
0610nobodyさん
2012/03/27(火) 01:13:45.03ID:???流行り廃りだし、自分で判断したほうがいいよ
0611nobody
2012/03/30(金) 00:02:30.52ID:???0612nobodyさん
2012/03/30(金) 00:16:05.99ID:???http://toro.2ch.net/test/read.cgi/tech/1327110999/
0613nobody
2012/03/30(金) 00:29:41.87ID:???0614nobodyさん
2012/04/03(火) 10:03:29.27ID:???catalystのスレはあるものの、人が居なさそうなので。。
catalystとApacheをつなぐために、
perl-Catalyst-Engine-Apache-1.12-1.el5.rf.noarch.rpm
を入れようとしているのですが、依存関係で以下の物が足りないと落ちます。
---> Package perl-Catalyst-Engine-Apache.noarch 0:1.12-1.el5.rf set to be updated
--> Processing Dependency: perl(Apache::RequestRec) for package: perl-Catalyst-Engine-Apache
--> Processing Dependency: perl(Apache::Response) for package: perl-Catalyst-Engine-Apache
--> Processing Dependency: perl(Apache::Const) for package: perl-Catalyst-Engine-Apache
--> Processing Dependency: perl(Apache2) for package: perl-Catalyst-Engine-Apache
--> Processing Dependency: perl(Apache::RequestIO) for package: perl-Catalyst-Engine-Apache
--> Processing Dependency: perl(Apache::URI) for package: perl-Catalyst-Engine-Apache
--> Processing Dependency: perl(Apache::Connection) for package: perl-Catalyst-Engine-Apache
--> Processing Dependency: perl(Apache::RequestUtil) for package: perl-Catalyst-Engine-Apache
いろいろ探すと、mod_perlの旧バージョン(1.9.9)には含まれていたものの最新バージョン(2.0.5)には含まれて居ないモジュールのようです。
対応方法が分かる方、ご教授いただけますでしょうか。
宜しくお願いいたします。
0615nobodyさん
2012/04/03(火) 11:11:13.68ID:???人がいなくてもそれがそのスレなんだからそこに書くしかないんじゃ?
人が少ないからで別スレきたら何でもアリになるだろ
0616613
2012/04/03(火) 16:39:22.06ID:???Catalyst::Engine::Apache2
なるものがcpanから出てました
ちょうど過渡期のようですね
0617nobodyさん
2012/04/04(水) 00:34:44.70ID:???0618nobodyさん
2012/04/04(水) 18:53:47.59ID:???ID<>名前<>パスワード<>データ各種・・・
みたいに記録してあって下のように処理しててこれが何か所も出てくる
扱うデータ増やすたびに全て修正しなくちゃいけなくてやたら面倒くさい
配列だと見た目で何の変数かわかりにくいし連想配列はつなぐときの順番がばらばらだし
どちらも読み取りだけの時使わない変数まで格納するの無駄かなあと考えてたら先に進まなくなってしまった
変数の追加とか挿入とかするとき一か所くらいの修正でいい無駄の少ない方法ない?
for($i=0;$i<$num;$i++){
($id[$i],$name[$i],$pass[$i],...) = split (/<>/, $data[$i]);
↓
処理
↓
$newdata[$i] = "$id[$i]<>$name[$i]<>$pass[$i]<>...";
}
0619nobodyさん
2012/04/04(水) 20:03:38.87ID:???subにぶち込んどきゃいいだろ
0620nobodyさん
2012/04/04(水) 21:27:07.37ID:???0621nobodyさん
2012/04/04(水) 22:59:22.68ID:???単純に後ろに追加すると位置的にわかりにくいから挿入したいんだが、数字のチェックもしなくていい方法ない?
元のデータの書き換えは再生成するから考えないとして
例
データ0<>データ1<>データ2<>・・・
↓
データ0<>データ1<>データx<>データ2<>・・・
それとサブルーチンだとどうやって引き渡そうか悩んでる
配列だと結局受け取るときに順番が大事だし連想配列だと上書きする時また<>で連結しにくいと思ったんだが
0622nobodyさん
2012/04/04(水) 23:25:45.28ID:???0623nobodyさん
2012/04/05(木) 00:00:05.98ID:???スライスは苦手なのでサンプルは今書けないけど、ファイルを全て読み込んだ時のイメージはこんな感じ。
my $data = {};
$data->{'headers'} = [〜];
$data->{'data'} = [
{○=>△,◇=>□},
{○=>△,◇=>□},
〜以下略〜
];
読み書きは @{$data->{'headers'}} の順番で行えば良い
で、読み書きを行うサブルーチンを作れば良い。
CSV 的なデータを連想配列で読み込むモジュールがあった気がする。
0624nobodyさん
2012/04/05(木) 00:25:31.57ID:???なんで無理して難しい方法で実現しようとするの?
0626nobodyさん
2012/04/05(木) 09:51:23.36ID:???ちょっと書いてみた。
http://www5.puny.jp/uploader/download/1333586646.zip
pass: perl
順番付き連想配列ってこうでいいのかな?
添削歓迎。
0627626
2012/04/05(木) 10:42:38.78ID:???ぱっと見 $i いらなそうなので無視してましたよ。
要件満たしてないっぽいので忘れてください。
0628nobodyさん
2012/04/05(木) 13:04:38.74ID:???pass:perl
自分はこう書いた
0629nobodyさん
2012/04/05(木) 15:56:41.39ID:???my $data = readdata_mod();
my $headers = shift @$data;
for my $hash (@$data){
$hash->{NAME} .= '【逮捕】';
print "$hash->{$_}\n" for @$headers;
}
sub readdata_mod{
my $headers = <DATA>;
chomp $headers;
$headers = [split(/<>/, $headers)];
my $data = [$headers];
while(my $line = <DATA>){
chomp $line;
my %tempdata = ();
@tempdata{@$headers} = split(/<>/, $line);
push @{$data}, \%tempdata;
}
return $data;
}
それより気になるのは >>618 のソースだと
@id,@name,@pass... と配列があるんですよね。
これをどう処理してるか謎なんで
レコードをなめるだけでいいのか悩むところ。
0630nobodyさん
2012/04/05(木) 16:34:07.79ID:???自分はデータとヘッダは分離させたいので、ああやって書きました。
0631nobodyさん
2012/04/06(金) 11:04:06.62ID:AWfq6sbZ例えば数字の入ったファイル名だけ全部lsしたい時って
どのように書けばいいのでしょうか。
こんな風に書いてみたんですが何も出力されません…
ls | perl -e "print /[0-9]/ "
0632nobodyさん
2012/04/06(金) 11:29:12.54ID:AWfq6sbZfind . -maxdepth 1 -name '*.gif' | perl -ne 'print if /\/*[0-9]{2}\.gif$/;'
こんな感じで出来ました
0634nobodyさん
2012/04/07(土) 02:02:53.93ID:???> if /\/*[0-9]{2}\.gif$/;
これはワイルドカードと正規表現をごっちゃにしているな。別物だからちゃんと区別するように。
0635nobodyさん
2012/04/07(土) 04:29:33.70ID:???find . -maxdepth 1 -name "[0-9][0-9].gif"
と等価なだけなんじゃないのか
0636nobodyさん
2012/04/07(土) 09:58:11.44ID:???取得できません.
use WWW::Mechanize;
my $mech = new WWW::Mechanize( autocheck => 1 );
my $url="https://member.livedoor.com/login/";
#my $url="https://www.nodeworks.com";
$mech->get($url);
print $mech->content;
$url を https://www.nodeworks.com とした場合は,取得できます.
https://member.livedoor.com/login/ が取得できない原因として,
何を疑ったらいいでしょうか??
0637nobodyさん
2012/04/07(土) 11:49:34.04ID:???0638nobodyさん
2012/04/07(土) 12:32:23.46ID:???0639nobodyさん
2012/04/07(土) 19:43:25.79ID:???0640nobodyさん
2012/04/07(土) 21:04:03.67ID:???Linux 標準の ぱーる は おーぷんえすえすえる 入れないとだめですわ シャキーン
0641nobodyさん
2012/04/08(日) 11:30:20.98ID:???を追加すると繋げることもある
0642636
2012/04/08(日) 21:41:15.55ID:???https:://gitub.com は,
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
でいけた.
しかし,https://member.livedoor.com/login/ は,それでもいけない.
https://member.livedoor.com/login/ は,特殊なんかな.
0643nobodyさん
2012/04/14(土) 20:30:27.28ID:???ttp://d.hatena.ne.jp/perlcodesample/20120414/1334359182
この人のブログ、>>2のテンプレに載ってないから心配になって聞いてみました。
0644nobodyさん
2012/04/14(土) 20:38:40.49ID:???そのブログ自体は数年前から、2ch に宣伝気味に貼られるけど
あんま相手にされてない
0645nobodyさん
2012/04/14(土) 20:45:44.78ID:???現代的()なPerlなんて覚えてもろくなことにならないから
5.6でも動くようなコーディングを心がけるべし。
あとこいつがプッシュしてるMojoliciousも、ちょっと有名なCatalystとかも
やめといた方がいい。
フレームワークなんてすぐ腐る。
CGIが一番。
0646nobodyさん
2012/04/14(土) 21:04:47.55ID:???0647nobodyさん
2012/04/14(土) 21:09:27.25ID:???フレームワークは金持ちのお坊ちゃまの娯楽、甘えでしかない。
技術を自分のモノにしたければCGIで泥臭く書け。
0648nobodyさん
2012/04/14(土) 21:45:18.04ID:???貧弱なマシンで使ってるの?
それ選択が間違いなだけだよ。
ユーザー数、数万、数十万のウェブサービスを作っていれば、
必然と複数台構成のマシンになる。
メモリの話だと1台10GBオーバーとか当たり前。
そういう世界の人に対して高性能PCとか、メモリ容量とか
釈迦に説法ってやつだと思わないか?
0649nobodyさん
2012/04/15(日) 11:24:37.83ID:???0650nobodyさん
2012/04/15(日) 11:27:08.04ID:???フレームワークは覚せい剤。手を出したら終わり。
0651nobodyさん
2012/04/15(日) 11:52:49.40ID:???その方が書きやすいしメンテもしやすいと思ってる
初期の頃からそうしてるけどぶれていないね
0652nobodyさん
2012/04/15(日) 11:58:08.00ID:???楽はしちゃだめだよね。
0653nobodyさん
2012/04/15(日) 13:46:50.99ID:???モジュールのメソッドの整理具合が、個別の問題にマッチしていないのは
当然あり得ること。
個別の問題を解決するのを車輪の再発明だとは思わない(キリッ
0655nobodyさん
2012/04/15(日) 14:12:40.71ID:???0656nobodyさん
2012/04/15(日) 15:17:25.01ID:???自分が今のやってるロジェクトだとHTML::Template系使ってるけど、
共通パラメータやらフィルタやら、細かい部分が多くてなあ。
0657nobodyさん
2012/04/16(月) 00:50:12.93ID:???0659nobodyさん
2012/04/16(月) 09:27:44.08ID:???上手になりたかったらもっと2chを活用しろ。
オライリーと2chだけで十分。
0660nobodyさん
2012/04/17(火) 05:05:18.23ID:???「関数とは、特定のまとまった処理を実行する機能のことです。
・・・一般的に、プログラムの中で呼び出される際にデータを受け取って
特定の処理を行い、結果を返す働きをします」
演算子もこの説明における関数と働きは似ているように見えます
例えば加算演算子が 2 つの数を受け取って和の値を返すというように
関数と演算子に大きな違いがあるのでしょうか?
なんで「関数」と「演算子」とわざわざ呼び分けているわけですか?
0661nobodyさん
2012/04/17(火) 12:31:41.99ID:???0663nobodyさん
2012/04/17(火) 12:35:26.61ID:???Googleも使うな
2chで全て解決
0664nobodyさん
2012/04/23(月) 13:21:35.61ID:???勝手に持ってきたけど…
printの前に
binmode(STDOUT);
を追加、が手っ取り早い答えかな。
ちなみにバイナリファイルを<>で取得するのは本来良い考えではないよ。
0665nobodyさん
2012/04/23(月) 16:18:26.17ID:???ちょっとめんどくさいのだけコピペ
0666nobodyさん
2012/04/23(月) 23:16:14.38ID:???たわけなんだよ。これ以上演算子を増やすにはアルファベットを並べるしか
ない。それが関数。だって数字を並べると数値になっちゃうからね。
0667nobodyさん
2012/04/23(月) 23:38:11.72ID:???0668nobodyさん
2012/04/23(月) 23:39:07.69ID:???0669nobodyさん
2012/04/24(火) 00:13:24.36ID:???0671nobodyさん
2012/04/25(水) 22:26:34.87ID:+oSgS9z70672nobodyさん
2012/04/25(水) 22:54:01.87ID:???name="form1" target="_top">
<input type="hidden" name="SelectPoint" id="SelectPoint" value="">
</form>
上記をmechで記述したいのですが、どのようにしたら良いのでしょうか?
submit か post モジュールでしょうか?
0673nobodyさん
2012/04/26(木) 18:55:24.85ID:???つ ttp://ja.wikipedia.org/wiki/%E7%A9%B6%E6%A5%B5%E8%B6%85%E4%BA%BA%E3%81%82%E3%80%9C%E3%82%8B
0674nobodyさん
2012/04/27(金) 21:41:56.60ID:Sw347W35いろいろ作業が便利になりそう。
0675nobodyさん
2012/04/27(金) 21:48:46.25ID:???に渡したい、ということですか?それはCGIに関する質問ですか?
0676nobodyさん
2012/04/28(土) 05:21:45.77ID:???name="form1" target="_top">
<input type="hidden" name="SelectPoint" id="SelectPoint" value="">
</form>
上記をmechで記述したいのですが、どのようにしたら良いのでしょうか?
submit か post モジュールでしょうか?
0677nobodyさん
2012/04/28(土) 05:22:25.20ID:???レスして頂きありがとうございます。
私は社会人になったばかりで、プログラミングをしたことがほとんどなく、上司に何とかしろと言われて困っています。
上司はプログラミングは全く出来ず、零細企業なので相談する相手もいません。
スレチなのかもしれませんが、ヒントだけでも、ご教授頂けないでしょうか?
連休明けには出来るようにしとけ、と言われています(>_<)
0678nobodyさん
2012/04/28(土) 05:23:46.66ID:???0679nobodyさん
2012/04/28(土) 08:17:52.38ID:???0680nobodyさん
2012/04/28(土) 08:40:53.38ID:???悩んでる暇があるなら、直接書け
0681nobodyさん
2012/04/28(土) 11:24:03.04ID:???直接書くほうが吉。覚えるものが少ないし、今後応用も利く。
あるいはmethod="post"をmethod="get"にしてもいいけどね。
0683nobodyさん
2012/04/28(土) 12:44:57.48ID:???こうはなりたくないものだ。だが反面教師としてはいい仕事。
0684nobodyさん
2012/04/28(土) 13:44:06.50ID:???まず、当事者意識が完全に欠如している。さらに、独り立ちをしようとせず、常に何かに依存し、
消費し、批判するだけの「お客さま」でいつづけようとしている。これはゆゆしき事態であり、
日本社会のありかたにかかわる重大な問題である。
最近の若者は、定職に就きたがらない。
あるいは、会社に入っても一定のポジションで身を立てようとしない。
なぜなら、社会的なかかわりを、全て暫定的・一時的なものと見なしているからだ。
彼らに言わせると、本当の自分は別のところにあり、現実の自分は仮の姿に過ぎないんだそうだ。
本当の自分は棚上げしておいて、いつまでも立場を替え、考えを変え、
自分自身をも変身させる余地を残しておく。一貫した主義主張をもたないか、もたないふりをする。
特定の党派、集団に全てを賭けることを避けようとする。
↑これ1977年に書かれた論評な 1997年じゃないぞ 今から30年以上前の文章だ
0685nobodyさん
2012/04/28(土) 14:46:07.99ID:???#!/usr/bin/perl/ -w
use strict;
use WWW::Mechanize;
use HTTP::Request::Common qw(POST);
#セッション切れるからクッキー必要?
use HTTP::Cookies;
#use Web::Scraper;
use encoding qw(euc-jp);
# cookie_jarの生成
my $cookie_jar = HTTP::Cookies->new(file => $cookie_file, autosave =>
1,ignore_discard => 1);
0686nobodyさん
2012/04/28(土) 14:46:57.80ID:???#ブラウザのユーザエージェントのエイリアス名
my $browser_user_agent = "Windows Mozilla";
my $mech = WWW::Mechanize->new();
$mech->cookie_jar($cookie_jar);
$mech->agent_alias( $browser_user_agent );
my $response = $mech->get( $url );
#form POSTする
my %formdata = (
'action'=>'../RealGraphView/Index.asp',
'id' => '01-02',
'name' => 'form1',
'target' => '_top',
'name' =>'SelectPoint',
'id' => 'SelectPoint',
'value' => ''
);
my $request = POST($url, [%formdata]);
my $res = $mech -> request($request);
# 中身のチェックをしてみるよ
print "現在のページのContentは?\n" . $res->content() ."\n\n";
0687nobodyさん
2012/04/28(土) 14:49:00.58ID:???スレ汚しで申し訳ありませんm(_ _)m
0688nobodyさん
2012/04/28(土) 15:16:19.51ID:???0690nobodyさん
2012/04/28(土) 16:13:31.64ID:???非協力的なのに何とかしろというのならば、あるいは何とかしたいのかも
しれない(試用期間も終わったし)
0691nobodyさん
2012/04/28(土) 16:48:30.97ID:???0692nobodyさん
2012/04/28(土) 17:53:29.20ID:???0694nobodyさん
2012/04/28(土) 19:48:03.75ID:???本題の解決策がわからなくて申し訳ないが気になった点を。
1)1行目のperlの後ろの/は削除(実行できているようだけど)。
2)$cookie_fileは何かのファイル名に変える。
自分の環境では↓のエラーが出ました。
Global symbol "$cookie_file" requires explicit package name at ./script.pl line 14.
Execution of ./script.pl aborted due to compilation errors.
てゆか一連のセッションを実行するならcookieの保存(cookie_jar指定)はいらないはず。
書いてもらったスクリプトには続きがあるのかな?
3)本来スクリプトはUTF-8で書いて
use encoding qw(euc-jp);
↓
use utf8;
とした方がいい。
最終行は対象ページがShift_JIS(cp932)なら
use Encode;
print "現在のページのContentは?\n" . encode("utf-8", $res->decoded_content('charset'=>'cp932')) ."\n\n";
かな。
0695nobodyさん
2012/04/28(土) 22:34:34.68ID:zGua3yDXとりあえずこの本を読んでいるがおおよそ理解できている。
http://www.amazon.co.jp/dp/4774150258
つぎにおすすめとかある??
MovableTypeのプラグインとか作れるレベルには3ヶ月ぐらいでなりたい。
ちなみにプログラミング歴はJavaScriptをまぁまあ、PHPを少々。
0696nobodyさん
2012/04/28(土) 23:04:09.66ID:???自分は中学生の頃読みました。
0697nobodyさん
2012/04/28(土) 23:17:08.63ID:???0698nobodyさん
2012/04/28(土) 23:24:14.90ID:???0699nobodyさん
2012/04/28(土) 23:43:56.75ID:???いうのはステルスマーケティングの疑いが濃厚ですね
0700nobodyさん
2012/04/29(日) 00:15:11.47ID:???ものをPerlで書くにはどうするのかって話なのな。んで処理した結果をExcel
に貼り付けるのは手作業なのなwま、いいけどね。
0701nobodyさん
2012/04/29(日) 00:23:08.69ID:???0702nobodyさん
2012/04/29(日) 00:26:42.16ID:???壊れるモジュールならあります。
0703nobodyさん
2012/04/29(日) 00:29:36.92ID:???0704nobodyさん
2012/04/29(日) 07:08:52.17ID:???676, 685-686です。
返答ありがとうございます。
1. /いらないですね(>_<)
2. $my cookie_file; を加えました。続きはありません。
3. 文字化けして困ってました。ご指摘ありがとうございます。
質問A
POSTの部分ですが、name と id がそれぞれ2回ずつ出てきます。
同じ変数名でいいのでしょうか?
質問B
form タグ内のid (form1)は、ここには書いていませんが、javascript から返された値だと認識してます。直接、値を記述してよいものでしょうか?
0705nobodyさん
2012/04/29(日) 10:58:15.00ID:???name は複数あると、CGI モジュールは配列で返してくると思った
0706nobodyさん
2012/04/29(日) 12:58:54.45ID:???とりあえず内容の誤りが多いので作者のページの正誤表でフォローが必須なのは事実
逆にそれをわきまえて自分の中で反芻してるなら問題はないでしょ
で、次のお勧めはこれかな
ttp://www.amazon.co.jp/dp/486267108X/
標準添付でも案外見落としてるモジュールがあることに気付く
CGI系はもう扱ってない(代わりに扱ってるのはPSGI/Plack系)点には要注意
0707nobodyさん
2012/04/29(日) 15:49:59.28ID:???だけあれば十分なのにね。その位ならPerl5ポケットリファレンスに付け足し
てもいける。
0708nobodyさん
2012/04/29(日) 18:28:09.76ID:???「cpanminus教えれば十分そんな本いらん」って、お前も随分と失礼な発言だな
2chのPerlスレはそのレベルに達していないどころか
「cpanmもperlbrewも使うな、システムがぐちゃぐちゃになる」
なんてのがまかり通ってたじゃねえか
0709nobodyさん
2012/04/29(日) 20:28:14.32ID:???0710nobodyさん
2012/04/29(日) 20:30:21.61ID:???0711nobodyさん
2012/04/29(日) 20:37:03.58ID:???,,ッヾ ミ、
、ヾ ミ、
X゛ ミ
ミ ,,,,,,,,,a''''ヾ. ミ
三 ,,a''" ヾ ミ
彡 |`ヽ'" _ヾミ
彡 ヽ __ _彡ミ_ミ
ミ 〉 _彡≡'´ ,r __ |
ミ / 〃 _ ヽ 〈 ∠ソ,>.{
ミ ヽ ∠ソ_ヽ, ′ ヽ`ー'' ヽ
ミ __ | ー一' \ !
`{ r-;\| ,、 丿ヽ. j
ヽヽ`コ.`j / `ー ''" :i!
ヽ _ ; / _,, -―‐''"ア j
\ i ヽ ヽ´`ー―一'" /
`! ` ⌒ |
,、_」 ` 、 \ _ノ
_/ ヽ ` ー-=―一'「`i-、_
/ \ \ __,r'´ |  ̄
/ .\  ̄ ̄ ̄ ̄ ̄ ノ
`ー―――――― '"
0712nobodyさん
2012/04/30(月) 07:35:10.72ID:???よくもまあ日本人の書いた本なんて読むもんだわ。献本でもされてんの?
読んでない(本屋で斜め読み)けど薦めてんの?
普通の人間なら、O'Reilly のラクダ、料理本、PBPあたりを読んで、追加で
Effectiveと救命病棟くらいを読めばいっぱいいっぱいだろ?
逆に、これらを読んでたら後発の日本人の本なんて読む気すら失せるけど。
0713nobodyさん
2012/04/30(月) 07:36:19.02ID:???0716nobodyさん
2012/04/30(月) 11:59:40.66ID:???外国の本マンセー
日本の本はクソ
でも英語読めないから日本語に訳せ
まあおかしくはないけどね、おかしくは
0718nobodyさん
2012/04/30(月) 12:21:35.69ID:???日本語訳がある本は、この本は訳して
日本で売れると判断したものだから
選ばれた本でもある。
0720nobodyさん
2012/04/30(月) 12:29:53.20ID:???2chでPlack使う奴が一人もいない現実を見ろよ。
0721nobodyさん
2012/04/30(月) 12:36:03.52ID:???「Rubyが憎いからPython大好き」とかも理解できん
0722nobodyさん
2012/04/30(月) 13:03:23.31ID:???どうかで判断するけどな。残念ながらいわゆる日本のひとが書いた
ものはオリジナリティが低い傾向があるのは否めない。ただ日本人っ
てひとくくりにするのは(自分も含めて)どうかと思うんだけどね。
0723nobodyさん
2012/04/30(月) 13:51:01.17ID:???それと編集の力量がない人が担当するからひどい物しか出来ないんではないかと
0724nobodyさん
2012/04/30(月) 14:23:36.77ID:???自分が知ってる内容を書きました。
で終わってるのが大半だからね。
原書をあたって、それをわかりやすく再構成、解説しました
みたいな本はものすごく少ない。
0725nobodyさん
2012/04/30(月) 14:59:00.04ID:???・箇条書きの方が分かりやすい場合でも、文章で説明したがる
こういった本はクソ
0726nobodyさん
2012/04/30(月) 16:16:02.92ID:???そのへんだと海外だと厳しいなあ。
0727nobodyさん
2012/04/30(月) 16:53:49.39ID:???0728nobodyさん
2012/04/30(月) 17:44:38.24ID:???だったら原書読んだ方がはるかにマシ
しかし原書も古い書き方を見捨てモダン()に走る兆候がみられてきている
高い新品の本を買うなら一昔前の版を安く買ったほうがコストパフォーマンス面では断然良い
0729nobodyさん
2012/04/30(月) 17:56:01.18ID:???わざわざ敷居を高くして付き合いづらいものにしようなんて意図は全くない
0730nobodyさん
2012/04/30(月) 18:09:03.43ID:???お前もモダン()って言葉に踊らされている
要は書き方の問題だよ
自分一人で満足するなら新しい書き方でもいい
でも他の人でも保守できるようにするなら古典的な書き方の一択しかない
0731nobodyさん
2012/04/30(月) 19:33:27.10ID:???なんだから、モダンなんて言われてないの当たり前
モダンと言わなくても、モダンに書くのが海外
0732nobodyさん
2012/04/30(月) 20:49:51.58ID:???0733nobodyさん
2012/04/30(月) 21:00:57.20ID:???1 ((限定))現代の, 近ごろの, 今の
modern city life
現代の都会生活.
2 ((限定))近世の, 近代の. ⇒ANCIENT11, CLASSICAL, MEDIEVAL
modern history
近世史(ほぼルネサンスから現代まで).
3 〈流行・考えなどが〉現代風の, 新しい, 最新の, モダンな(up-to-date);((限定))〈芸術・文学・音楽などが〉現代的な
modern dance
モダンダンス
modern fashions
最新の流行型.
━━[名]((しばしばthe ?s))現代人;新しい思想の持ち主
This author is one of the moderns.
この作家は現代の作風を代表する一人である.
0734nobodyさん
2012/04/30(月) 21:19:31.95ID:???0735nobodyさん
2012/04/30(月) 21:48:32.78ID:???0736nobodyさん
2012/05/01(火) 01:20:21.22ID:???モダンじゃないとするとどうして「古く」なっちゃうのかちょっと
教えてくれよ、そこのノータリン。
0737nobodyさん
2012/05/01(火) 12:35:54.71ID:???0738nobodyさん
2012/05/01(火) 21:05:19.98ID:???維持してきている。そこで、
同心円の内側のみを使ってスクリプトを記述すれば、古いインタプリタでも
新しいインタプリタでも実行できて便利(そういう需要がある)。
と考えるのと
同心円の外側の部分のみを使ってスクリプトを記述すれば、古いインタプ
リタを根絶できるので便利(複数のインタプリタをメンテするのは無理・無駄)。
と考えるのとがあり、目指していることが違うので議論はいつも平行線で
終わってしまう。
0739nobodyさん
2012/05/01(火) 22:39:14.05ID:???今よりも古いOSで動かすとかまずありえない。
0740nobodyさん
2012/05/01(火) 23:19:15.85ID:???0741nobodyさん
2012/05/02(水) 23:55:49.46ID:???0742nobodyさん
2012/05/03(木) 12:53:45.35ID:???a.cgiからlib/b.cgiをrequireするんですが
Can?t locate ./lib/b.cgi in @INC
とエラーが出てしまいます。
コマンドで
perl a.cgi
だと問題なく動くのでCGIの場合に相対パスで読み込めてないような気がします。
どこの設定を見直せばいいでしょうか?
./
|
|a.cgi
|
|lib-|
|b.cgi
0743nobodyさん
2012/05/03(木) 14:16:30.71ID:???今の環境を書く。
前の環境に戻す。
0744nobodyさん
2012/05/03(木) 14:44:25.44ID:???require を相対パスで書かずに絶対パスで書く
0745nobodyさん
2012/05/04(金) 13:56:44.21ID:???後者が古いものを切り捨てようとしているのに対して、前者は新しいものを
切り捨てようとしている【わけではない】ことに注意する必要がある
0747nobodyさん
2012/05/04(金) 17:49:33.26ID:???mod_perlだったみたいで互換性ないの知りませんでした
ふつうのCGIにしたら問題なく動きました
0749nobodyさん
2012/05/04(金) 21:41:24.52ID:???しかたがない
0751nobodyさん
2012/05/05(土) 23:38:10.71ID:???あせっているのかが訳わからない
0752nobodyさん
2012/05/06(日) 09:53:21.29ID:???余程古い書き方してなけりゃ無理して追う事は無い
0753nobodyさん
2012/05/06(日) 10:49:50.61ID:???0754nobodyさん
2012/05/08(火) 11:27:12.65ID:KnJQK4viエンコード指定すれば回避できると思い調べていたがどうにも・・・orz
送信者(MailFrom) : テスト送信 ぬるぽ <nullpo@nulupoppo.null>;
↓
送信
↓
{文字化けした文字} <nullpo@nulupoppo.null>;
0755nobodyさん
2012/05/08(火) 13:58:50.62ID:???0756nobodyさん
2012/05/08(火) 14:04:12.49ID:???0757nobodyさん
2012/05/10(木) 11:20:36.37ID:???普通 -=utf8? みたいなのからはじまって = で終わるかんじだとおもうんですが・・・どうしたらorz
0758nobodyさん
2012/05/10(木) 12:38:20.34ID:???MIME::LiteはMIMEヘッダ用のencodeはやらないので自前でやれ、てことらしい
encode("MIME-Header-ISO_2022_JP", "ぬるぽ");
# =?ISO-2022-JP?B?GyRCJEwkayRdGyhC?=
参考:
ttp://pmakino.jp/tdiary/20061215.html
ttp://iandeth.dyndns.org/mt/ian/archives/000628.html
あとMIME::Liteはもう更新されてないのでEMail::Senderとか使えとマニュアルにあった
ttp://search.cpan.org/~rjbs/MIME-Lite-3.028/lib/MIME/Lite.pm
0759nobodyさん
2012/05/10(木) 12:40:25.73ID:???use utf8;
print encode("MIME-Header", "ぬるぽ");
# =?UTF-8?B?44Gs44KL44G9?=
0760nobodyさん
2012/05/10(木) 14:41:15.55ID:???と自分で確認せずに質問する私
0761758-759
2012/05/10(木) 16:43:05.99ID:???ごめんなさい、use Encode;ないと無理ですね_| ̄|○ il||li
ちなみに>>758はuse utf8;不要、>>759は要use utf8;です
0762nobodyさん
2012/05/10(木) 23:52:03.09ID:???0763nobodyさん
2012/05/11(金) 00:48:08.10ID:???0764nobodyさん
2012/05/11(金) 01:08:31.24ID:???encode() に渡されるのはフラグの立った utf8
まずは日本語の扱いをもっと学習した方が良いかも
0765nobodyさん
2012/05/11(金) 01:11:10.98ID:???0766nobodyさん
2012/05/11(金) 01:12:05.76ID:???0767nobodyさん
2012/05/11(金) 01:14:41.05ID:???>>765
こうですか?
あなたが何を言いたいのかさっぱりわかりませんw
0768nobodyさん
2012/05/11(金) 01:24:19.42ID:???0769nobodyさん
2012/05/11(金) 16:29:39.44ID:???CGIなんですけど
open(LOG, ">>/opt/lampp/test/LOG");
とか、
if(!open(LOG, ">>LOG")) {
…
とかでログファイルをopenしています。
二つのファイルとも、パーミッションは
-rw-r--r-- で同じなんですけど、
下の方で開けたログファイルは、後から同じ上書きopenで開けず
エラーになります。まぁ手動で下のファイルだけ、
-rw-rw-rw- とかに変えればいいんですけど。めんどくさいので
いい方法ありませんか?っていうか何が原因ですか?
よろしくお願いします。
0770nobodyさん
2012/05/11(金) 17:02:14.89ID:???openは3引数で使う、グロブじゃなくて変数を使うってところか
0771nobodyさん
2012/05/11(金) 18:35:09.50ID:???0772nobodyさん
2012/05/12(土) 14:16:24.41ID:???if ($in{'mail'} eq "hoge@hoge.com"){
処理〜
}
これじゃダメなんですか?
0773nobodyさん
2012/05/12(土) 14:21:07.43ID:???メールアドレスの所をしんぐるくぉーてーしょんに変えるがいい
if ($in{'mail'} eq 'hoge@hoge.com'){
0775nobodyさん
2012/05/12(土) 15:45:18.56ID:???0776nobodyさん
2012/05/12(土) 16:02:35.92ID:???ダブルクォーテーション内では変数は展開されるから、
メールアドレスの「@hoge」が配列として扱われて展開されちゃうから
シングルクォーテーションを使って変数が展開されないようにするか、
もしくは「\」でエスケープして "hoge\@hoge.com" のように書く
と覚えておいた方がええんでは
0777nobodyさん
2012/05/14(月) 11:15:17.47ID:???0778nobodyさん
2012/05/14(月) 11:59:37.23ID:???"@foo" が展開される罠は他の言語にはないけどさ
0779nobodyさん
2012/05/23(水) 17:27:24.18ID:rf0/+ult0780nobodyさん
2012/05/23(水) 17:28:38.79ID:rf0/+ult0781nobodyさん
2012/05/23(水) 17:32:33.00ID:rf0/+ult0782nobodyさん
2012/05/23(水) 18:59:49.41ID:rf0/+ult0783nobodyさん
2012/05/23(水) 19:32:41.29ID:???0784nobodyさん
2012/05/23(水) 20:09:04.03ID:???0788nobodyさん
2012/05/24(木) 09:35:27.46ID:???0789nobodyさん
2012/05/24(木) 19:30:42.39ID:???0790nobodyさん
2012/05/24(木) 19:42:26.19ID:???0791nobodyさん
2012/05/25(金) 00:00:56.26ID:???0792nobodyさん
2012/05/25(金) 04:32:23.39ID:???0793nobodyさん
2012/05/25(金) 06:43:20.05ID:???0794nobodyさん
2012/05/25(金) 08:58:48.21ID:???特定の用法でなら、使い道ってあるんかな。
例えばCとかなら、使いにくい仕様でも、使い勝手を犠牲にして低レベルな処理にしたとか、
低レベルだからこそPGが直に弄れるメリットも無くはないってのが想像出来るんだけど。
0796nobodyさん
2012/05/25(金) 19:34:09.54ID:???0797nobodyさん
2012/05/25(金) 20:31:46.80ID:???0798nobodyさん
2012/05/25(金) 20:47:50.48ID:???0799nobodyさん
2012/06/07(木) 23:29:12.95ID:???EPICとpadwalkerで環境構築してデバッガを動かしてみたのですが、値で文字化けが起きていて困っています。
eclipse.iniには-Dfile.encoding=utf-8を追記して構文検証が動くのは確認してます。
環境のバージョンは下記の通りになります。
eclipse:3.7.2
epic:0.5.46
activeperl:5.14.2
padwalker:1.93
以上、よろしくお願いします。
0800nobodyさん
2012/06/10(日) 21:57:43.97ID:???配布されているcgiってstrictやwarnings使ってないやつも結構あるんだが
やっぱりローカルで十分テストしたら外しておいた方がいいの?
それとも単に局所化も考えていないだけの駄コードなだけ?
2
実行ファイルだけじゃなくてライブラリにもstrict,warningsって記述しないと意味無い?
だとすると上で書いたように実際に運用する時外した方がいいとするといちいち全部外さなきゃいけないの?
3
諸設定を分離して別ファイルでグローバル変数として定義してると
実行ファイルなどで「1回しか出てこねーぞ」と怒られてしまいます
どんな回避方法がベストですか
どうせsjisへのconvertしか使わないから不要な部分カットしたjcode.plが一番よくねと思って
jcode.plを見たら思った以上に解読難しかった(´・ω・`)
0801nobodyさん
2012/06/10(日) 22:23:30.29ID:???2. no が使えるプラグマは、ほぼレキシカルスコープ。
no strict ; no warnings
ライブラリだろうと、スコープから外れたら効力は無い。
3. Exporter 使って export すれば?
0802nobodyさん
2012/06/10(日) 22:26:24.92ID:???0803nobodyさん
2012/06/10(日) 23:19:34.11ID:???0804nobodyさん
2012/06/10(日) 23:58:10.87ID:???まあ、そういう経験ない人に言っても伝わらんだろうけど。
0805nobodyさん
2012/06/11(月) 00:29:11.97ID:???0807nobodyさん
2012/06/11(月) 04:49:40.79ID:???命令 or die
これまとめて書きたかったらどう書くの?
命令 if 条件 or die とかでオッケー?
0808nobodyさん
2012/06/11(月) 06:00:31.52ID:???時と場合によっては、括弧で括って演算子の実行順位が変更されないように。
0809nobodyさん
2012/06/11(月) 21:39:23.02ID:???% corelist strict
strict was first released with perl 5
% corelist warnings
warnings was first released with perl v5.6.0
5.6 未満の鯖を使ってる人なら辛うじて「使えない」と
言えるかも知れんけどねw
804 みたいな意見は、 KENT あたりの強弁を鵜呑みに
してるとしか思えんよ。
0810nobodyさん
2012/06/11(月) 23:39:17.35ID:???0811nobodyさん
2012/06/12(火) 01:06:42.34ID:???0812nobodyさん
2012/06/12(火) 05:17:36.52ID:???use strict に至っては、1993 年実装だぞ。
0813nobodyさん
2012/06/12(火) 06:08:24.36ID:???strictも使えないサーバは見たことないな。
0814nobodyさん
2012/06/13(水) 01:58:11.19ID:???0815813
2012/06/13(水) 02:04:10.58ID:???0816nobodyさん
2012/06/13(水) 03:15:49.57ID:???自分で自分の首を絞めてるだけに見えるな。
一応リリース日書いておくわ。あなたはいったい何年前のマシンを使ってるんですか?
Perl 1.0 1987年12月18日
Perl 2.0 1988年6月05日
Perl 3.0 1989年10月18日
Perl 4.0 1991年3月21日
Perl 5.0 1994年10月17日
Perl 5.5.0 1998年7月22日
Perl 5.6.0 2000年5月22日 warnings導入
Perl 5.8.0 2002年7月18日 Unicode正式対応
Perl 5.10.0 2007年12月18日
Perl 5.12.0 2010年4月13日
Perl 5.14.0 2011年5月14日
Perl 5.16.0 2012年5月20日
0817nobodyさん
2012/06/13(水) 04:35:00.28ID:???0818nobodyさん
2012/06/13(水) 05:00:19.82ID:???提案は出来るだろ。
0819nobodyさん
2012/06/13(水) 06:39:10.27ID:???(開発用のモジュールはリリース時には滅多に必要にならないんだから)
use strict; -wスイッチは切りましょう
(トラブったら、その時ONにしてデバックすれば良い)。
ってお作法の名残りだろ。本来の意味でのバッドノウハウ(?)
で、アホが行間の意味を考えず、 warningsに置き換えただけ。
perl5.6時代の当初は後方互換 = 環境依存と言う理由が後付けされたが、
それだったら、warningsを使わず -w使えばいいだけの話
0820nobodyさん
2012/06/13(水) 07:22:17.87ID:???社会に出たことないのか?
0821nobodyさん
2012/06/13(水) 12:32:37.23ID:???0822nobodyさん
2012/06/13(水) 16:02:50.21ID:???別環境の構築まで仕事として依頼されれば喜んでやるけどさ。
0823nobodyさん
2012/06/13(水) 19:16:09.34ID:???0824nobodyさん
2012/06/13(水) 19:39:09.52ID:???0825nobodyさん
2012/06/13(水) 22:33:10.23ID:???ありがたーいお客様ですねわかります
0826nobodyさん
2012/06/13(水) 22:37:18.89ID:???それを客のせいにするわけですねw
環境がー、環境がー、
0827nobodyさん
2012/06/13(水) 22:38:41.15ID:???新しい機能が使えないだけじゃなくて
バグがあるんだよ。
0828nobodyさん
2012/06/13(水) 22:39:19.57ID:???5系は甘え
0830nobodyさん
2012/06/13(水) 22:43:18.44ID:???一、CPANモジュールに頼るな。Perlに付属するモジュールだけを使え。
一、perldocに頼るな。Webにアクセスして検索もするな。本に書いてあることを全て記憶して臨め。
0831nobodyさん
2012/06/14(木) 08:20:28.86ID:???0833nobodyさん
2012/06/16(土) 23:40:53.22ID:???なんてないんだから。
0834nobodyさん
2012/06/17(日) 00:54:41.36ID:???0836nobodyさん
2012/06/17(日) 08:30:35.87ID:???お前らの生活を支える会社をもっと大切にしろ
0839nobodyさん
2012/06/17(日) 20:01:25.21ID:???0840nobodyさん
2012/06/18(月) 04:10:39.17ID:???0841nobodyさん
2012/06/18(月) 09:15:28.84ID:???5.005でも十分とわかりました。
5.6以降を使うのは甘えです。
CPANモジュールに頼るのも甘えです。
0842nobodyさん
2012/06/18(月) 10:21:41.00ID:???0843nobodyさん
2012/06/18(月) 12:13:55.57ID:???当人だけが満足しているだけじゃだめなんです。
周りの人間が5.6以降やCPANモジュールなどに依存したコードを書いて
他人に迷惑をかけることを防がなければなりません。
そのためにもルールは守っていただきます。
0844nobodyさん
2012/06/18(月) 13:21:15.86ID:???0845nobodyさん
2012/06/19(火) 06:28:15.00ID:???けど、もともと使ってない俺達には関係ない話なんだけどな
0846nobodyさん
2012/06/20(水) 00:33:54.27ID:???おまえさんのJcode好きには負けたよ...
おれは降りるから、ここ好きに使っていいよ。
(でも荒らすんじゃないぞ)
0847nobodyさん
2012/06/23(土) 20:26:58.26ID:???0848nobodyさん
2012/06/23(土) 21:29:02.36ID:???0849nobodyさん
2012/06/23(土) 23:12:30.52ID:???「ノウンバグは仕様」 という言葉をキミに授けよう
0850nobodyさん
2012/06/30(土) 16:43:21.68ID:???ttp://toro.2ch.net/test/read.cgi/tech/1336267272/791
> 質問と言うか助けてください
>
> http://.....hoge.cgi?hage=hige&mage=1,2,3
> 上記の引数付きのものをデバッガで実行するのって
> perl -d hoge.cgi hage=hige mage=1,2,3
> で合ってますか?
>
> また、この引数って何処から取れば良いのでしょうか?@ARGV?
>
> 何処にも入れた引数見つからなくて泣きそう…
0851nobodyさん
2012/06/30(土) 17:29:30.01ID:???その火をこっちに持ち込むんじゃねえよゴミ
質問者が持ち込むならまだしもお前が持ち込むとか意味不明
こっちまで荒らすつもり?
0852nobodyさん
2012/06/30(土) 17:32:55.61ID:???あっちから来たのバレバレですよ
>質問者が持ち込むならまだしも
そうだったらマルチポストガーって騒ぐんだろ?
0853nobodyさん
2012/06/30(土) 19:48:47.09ID:???あっちのスレ見たけどもう質問者がバカッターで教えてもらったって書いてあるじゃん
0854nobodyさん
2012/06/30(土) 20:46:14.07ID:???0857nobodyさん
2012/06/30(土) 23:00:50.01ID:???デバッガのことを知っているのに引数の取得の仕方を知らないのは、かなり
不自然なので、きっとみんなはネタだと思ってスルーしていますよ。
0858nobodyさん
2012/06/30(土) 23:37:05.04ID:???0859nobodyさん
2012/07/01(日) 01:16:46.79ID:???0860nobodyさん
2012/07/01(日) 01:28:20.30ID:???0861nobodyさん
2012/07/01(日) 01:43:44.80ID:???本人かどうかは知らんけど本人ならそれはそれでもう終わった話だし、
違うなら本人が貼りにくるんじゃないの?
0863nobodyさん
2012/07/01(日) 05:57:35.97ID:???0865nobodyさん
2012/07/01(日) 14:58:36.35ID:???0866nobodyさん
2012/07/01(日) 14:59:40.76ID:???for(@ARGV){ print $_, "\n"; }
__END__
# 素人にこんなこと頼むほうが間違ってると思うけどな
0868nobodyさん
2012/07/01(日) 19:16:28.01ID:???0869nobodyさん
2012/07/01(日) 19:34:10.42ID:???質問スレはどんな質問したっていいんだよ。
どんな質問だろうと答えられないなら黙ってろよks
0870869
2012/07/01(日) 19:36:26.53ID:???0872nobodyさん
2012/07/02(月) 00:22:38.63ID:???0873nobodyさん
2012/07/02(月) 01:10:03.89ID:???0874nobodyさん
2012/07/02(月) 01:14:31.81ID:???0875nobodyさん
2012/07/02(月) 12:48:18.72ID:JlbMNHfq0876nobodyさん
2012/07/02(月) 14:06:36.10ID:???0877nobodyさん
2012/07/02(月) 20:43:28.96ID:???ぼっき見たことないんだな
0878nobodyさん
2012/07/03(火) 00:34:14.67ID:???0879nobodyさん
2012/07/04(水) 12:21:05.93ID:???0880nobodyさん
2012/07/04(水) 22:18:08.21ID:???0881nobodyさん
2012/07/05(木) 05:29:04.45ID:???0882nobodyさん
2012/07/05(木) 12:25:39.86ID:???0883nobodyさん
2012/07/05(木) 12:53:35.88ID:???こんな子と一晩ハメまくりたい。
0884nobodyさん
2012/07/05(木) 23:44:30.40ID:???0885nobodyさん
2012/07/05(木) 23:45:21.71ID:???0886nobodyさん
2012/07/06(金) 00:17:23.96ID:???0887nobodyさん
2012/07/06(金) 00:41:24.50ID:???0888nobodyさん
2012/07/06(金) 12:08:10.38ID:???0889nobodyさん
2012/07/06(金) 20:44:39.47ID:???色々画像見てたらミニスカートとかきわどいのも何枚か見かけたんだけど
あれ全部チンコ付きで着てるってことか?
0890nobodyさん
2012/07/06(金) 23:10:00.17ID:???0891nobodyさん
2012/07/06(金) 23:13:24.55ID:???0892nobodyさん
2012/07/07(土) 00:00:21.77ID:???0893nobodyさん
2012/07/07(土) 00:09:48.02ID:???怖いわあ、やっぱ引きこもってネトゲやってたほうが安全だな
0894nobodyさん
2012/07/07(土) 00:32:03.63ID:???0896nobodyさん
2012/07/07(土) 23:25:20.67ID:???0897nobodyさん
2012/07/08(日) 00:39:17.40ID:???0898nobodyさん
2012/07/08(日) 04:19:51.63ID:tOnU5yF9マジで!?
男のケツに入れると腐るの!?
0899nobodyさん
2012/07/08(日) 09:20:09.96ID:???0900nobodyさん
2012/07/08(日) 10:38:38.83ID:???まあ、勧めるならしてみるけど。。。結果は保証できないよ
0901nobodyさん
2012/07/08(日) 10:53:06.65ID:???0902nobodyさん
2012/07/08(日) 14:00:00.30ID:???あれってケツの中で小便が出てるのが分かるらしいな
本当に便器にしてるみたいで興奮する
0903nobodyさん
2012/07/08(日) 14:34:00.09ID:???腸内洗浄の作業からして興奮する
0904nobodyさん
2012/07/08(日) 20:00:16.05ID:???ぼっき見たことないんだな
0905nobodyさん
2012/07/08(日) 20:01:47.30ID:???ピー(送信完了)
0906nobodyさん
2012/07/08(日) 20:35:26.38ID:tOnU5yF9男のケツに入れると腐るの?
0907nobodyさん
2012/07/08(日) 23:17:09.81ID:???ポー(受信完了)
0909nobodyさん
2012/07/09(月) 19:56:05.82ID:???勃起したままじゃないんじゃね?
射精する瞬間に深く打ち込んで出して、
そのまま抜かずに萎えてきたところで放尿だろう。
0911nobodyさん
2012/07/09(月) 22:47:11.81ID:???0912nobodyさん
2012/07/09(月) 23:06:55.39ID:???あれってちんこの先で屁が出てるのが分かるらしいな
本当に便器にしてるみたいで興奮する
0913nobodyさん
2012/07/10(火) 18:22:28.63ID:???0914nobodyさん
2012/07/10(火) 21:33:02.16ID:???0915nobodyさん
2012/07/10(火) 22:59:04.19ID:???0916nobodyさん
2012/07/11(水) 08:10:40.37ID:???0918nobodyさん
2012/07/11(水) 18:18:40.84ID:???ケツにチンコなんか入るわけないだろ常識で考えろw
0919nobodyさん
2012/07/11(水) 18:42:41.40ID:???0920nobodyさん
2012/07/12(木) 01:42:22.31ID:???(Perlのコーディングで困ってるので気晴らしに書き込んでいます)
0921nobodyさん
2012/07/12(木) 03:48:24.31ID:???0922nobodyさん
2012/07/12(木) 09:23:24.77ID:???http://pele.bbspink.com/gaypink/
0923nobodyさん
2012/07/12(木) 17:11:34.52ID:???0924nobodyさん
2012/07/12(木) 17:21:08.98ID:???0925nobodyさん
2012/07/12(木) 23:32:54.43ID:???0926nobodyさん
2012/07/13(金) 02:10:55.64ID:???0927nobodyさん
2012/07/13(金) 05:08:20.16ID:???まさに性欲処理の道具って感じで酷いことをしてるみたいで興奮する
0928nobodyさん
2012/07/13(金) 08:09:05.11ID:???0929nobodyさん
2012/07/13(金) 21:54:32.42ID:???ttp://coconala.com/
0931nobodyさん
2012/07/14(土) 03:33:24.48ID:???それ作った奴は一から勉強したんじゃないの?
生まれたときからある程度プログラミングについて知ってたとか?
0933nobodyさん
2012/07/14(土) 13:53:01.66ID:???0934nobodyさん
2012/07/14(土) 18:15:26.18ID:bFiZn5Ibまむこはちゃんと出したり入れたりどっちもいける前提で付いてるだろ
だけどあなるは出す目的でしか付いていない
出す目的でしか付いてないところに突っ込むとかどう考えても体に悪そう
0935nobodyさん
2012/07/14(土) 21:24:16.84ID:???0936nobodyさん
2012/07/14(土) 22:26:25.66ID:???漬物のしんこしか思い浮かばないんだが
0937nobodyさん
2012/07/15(日) 23:01:22.76ID:???0938nobodyさん
2012/07/16(月) 00:01:37.21ID:???はるな愛は無理
0939nobodyさん
2012/07/16(月) 11:46:17.13ID:???0940nobodyさん
2012/07/16(月) 13:32:10.36ID:???0941nobodyさん
2012/07/16(月) 16:48:10.22ID:???0942nobodyさん
2012/07/16(月) 17:01:32.46ID:???0943nobodyさん
2012/07/16(月) 17:28:22.47ID:???元にもどれ
print "halou warrudo";
0944nobodyさん
2012/07/16(月) 17:51:58.26ID:???自己顕示欲の塊でキモすぎ
管理人気取りのゴミか?w
0945nobodyさん
2012/07/16(月) 18:27:49.87ID:???ベッドインしてハメまくっても分からないかも
0946nobodyさん
2012/07/22(日) 04:18:52.31ID:???まともなレスがさっぱりこなくなったな
0947nobodyさん
2012/07/22(日) 16:01:15.16ID:???ヘッダを
print qq|Content-Type: text/csv\n\n|;
print qq|Content-Disposition: attachment; filename="hogehoge.csv"\n\n|;
としてもファイル名が「〜〜.cgi」でダウンロードされようとしてしまいます。
apacheのログにはエラーなどは出ていないですし、ダウンロードした〜〜.cgiの中身を見ると
きちんと命令通りに出力されています。
もう詰み気味です。。。何が原因なのでしょうか?
0951nobodyさん
2012/07/22(日) 19:04:17.52ID:???Perl厨らしい流れだ
0952nobodyさん
2012/07/22(日) 19:11:05.37ID:???0953nobodyさん
2012/07/22(日) 19:25:10.48ID:???お前の人生が詰んでるんだからコンピュータ関係で詰むのも無理はない
諦めろ
>>1も読まずに誘導されてくるとかカスすぎる
0954nobodyさん
2012/07/22(日) 19:39:14.83ID:???どうせあとから情報出してくる典型的なクズだろこいつ。
0956nobodyさん
2012/07/22(日) 19:51:13.43ID:???まあニヨニヨ見てよう。
0959nobodyさん
2012/07/22(日) 19:55:06.88ID:???確かに正しくは\r\nだが、今回は違うと思う
CGIが出力した\nを\r\nに変換してくれない鯖ってあんのかねぇ
0960nobodyさん
2012/07/22(日) 19:59:59.69ID:???\n\n2回繰り返していいものか?
Content-Type: text/csv\n
Content-Disposition: attachment; filename="hogehoge.csv"\n\n
じゃないかと思ったんだが俺がバカだったか。
すまん。
0962nobodyさん
2012/07/22(日) 20:08:59.36ID:???ダウンロードしたファイルをエディタなりで開いてみそ。
0963nobodyさん
2012/07/22(日) 20:15:50.38ID:???どや顔してる奴って多いよなw
いういうやつって質問の答が返って来ても
たいてい何も言わないんだ。
そりゃ分からない+関係ない情報だから
答えられるわけ無いわなw
0964nobodyさん
2012/07/22(日) 20:19:24.74ID:???俺も何年も前に全く同じ現象に遭遇したけど自分で解決したな
0965947
2012/07/22(日) 22:09:33.09ID:???Twitterでちゃんとした回答もらったわ
このスレは煽り合いしかできない雑魚しかいないということがよくわかった
役立たず共乙
0966nobodyさん
2012/07/22(日) 22:21:43.27ID:???0968nobodyさん
2012/07/22(日) 23:30:39.36ID:???0969nobodyさん
2012/07/23(月) 16:06:28.96ID:ksaJELgM0970nobodyさん
2012/07/23(月) 21:56:34.68ID:???0971nobodyさん
2012/07/23(月) 23:30:56.21ID:???0972nobodyさん
2012/07/24(火) 03:09:04.42ID:???もうちょっと食べごたえあるほうがよい
0973nobodyさん
2012/07/24(火) 17:58:36.77ID:???古いカップラーメンの麺もちょうどあんな感じだし。
0976nobodyさん
2012/07/24(火) 23:46:07.71ID:???0977nobodyさん
2012/07/25(水) 01:48:07.80ID:???0978nobodyさん
2012/07/25(水) 04:05:30.90ID:???ただカップ麺によっては薄っぺらくないような
0979nobodyさん
2012/07/25(水) 09:06:30.40ID:???0980nobodyさん
2012/07/25(水) 19:12:58.84ID:???0981nobodyさん
2012/07/25(水) 19:27:27.56ID:???0982nobodyさん
2012/07/25(水) 21:04:35.78ID:dwLANYn+0983nobodyさん
2012/07/25(水) 23:31:36.10ID:???おいらみたいな素人で、休憩こみで3時間くらい
0984nobodyさん
2012/07/26(木) 00:04:46.61ID:???初心者だから何をどうしていいかわからんww
0985nobodyさん
2012/07/26(木) 03:49:19.83ID:???Perlスクリプトとしてはsendmailかqmailに投げれば数行程度だし
HTMLも送信ボタンだけなら一瞬で作れる
休憩込みで10分くらいか
プログラム以外の環境整えたりする部分のほうがはるかに時間食う
0986nobodyさん
2012/07/26(木) 05:08:32.55ID:???ベチョベチョしてるし
あれ食べるくらいなら麺だけソースで炒めて食ってたほうがマシ
0987nobodyさん
2012/07/26(木) 07:36:26.72ID:???0988nobodyさん
2012/07/26(木) 13:42:31.55ID:???0989nobodyさん
2012/07/26(木) 19:03:02.38ID:XToCrg0L湯切りした後カップのフタを外し、
チャーハンを炒めるように麺を空中高く何回か放り上げると水分が飛んで水っぽさが減るぞ
多少冷えるから猫舌には一石二鳥
0990nobodyさん
2012/07/27(金) 18:46:31.72ID:???あれはあれで美味い
0991nobodyさん
2012/07/27(金) 22:58:08.09ID:HVW45JLNきつねも肉も旨い。
0992nobodyさん
2012/07/27(金) 23:06:30.19ID:???スーパーでラーメン汁と麺買ってきて食ってもマズイから
カップ麺で食ったほうが良い
一方うどんはスーパーで汁とうどん買ってきて食ってもそこそこ旨い
0993nobodyさん
2012/07/27(金) 23:43:00.04ID:???0994nobodyさん
2012/07/28(土) 00:48:46.75ID:???0995nobodyさん
2012/07/28(土) 03:54:39.13ID:???0996nobodyさん
2012/07/28(土) 08:50:41.85ID:???0997nobodyさん
2012/07/28(土) 10:06:52.29ID:???0998nobodyさん
2012/07/28(土) 10:25:59.59ID:???0999nobodyさん
2012/07/28(土) 10:34:05.89ID:???1000nobodyさん
2012/07/28(土) 10:51:03.34ID:???向うのスレも、明らかに初心者の質問でも誘導しないし、
超初心者スレもとっくになくなったし、、、
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。