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


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

くだすれPerl(超初心者用)



1 名前:nobodyさん mailto:sage [2006/09/10(日) 13:33:48 ID:???]
このスレッドは、他のスレッドでは書き込めない超低レベル、  
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。  
Perl使いが優しくコメントを返しますが、  
お礼はPerlの布教と初心者の救済をお願いします。  


40 名前:nobodyさん mailto:sage [2006/10/26(木) 09:05:17 ID:??? BE:162187283-BRZ(1033)]
昔2chでIDバトルというスレを見つけたのを思い出して真似してみようかなと思っています。

41 名前:nobodyさん mailto:sage [2006/10/26(木) 10:32:06 ID:???]
つまりIDをとるだけのためにいちいち書き込むと?

42 名前:nobodyさん mailto:sage [2006/10/26(木) 11:11:39 ID:??? BE:94610227-BRZ(1033)]
ID取得はdatから抽出することでできたんですが、スレに結果を出力できません……。
ローカルで結果を何回も出力させていっても自分がパンクしそうなので自動化しようと思った次第です

43 名前:nobodyさん mailto:sage [2006/10/26(木) 16:14:52 ID:???]
あー、そういう事か。理解した。

基本的に2chは容易に荒らしツールに転用でき得る外部からの書き込みには厳しいし
それがperlスクリプトと来てはなおさらだろう。
rep2みたいに何とかやってのけた例はあるけど(まああれはPHPだが)あれも
FOXに荒らし専用ツールと勘違いされて一時期えらい事になっていたし、
やるならdatから必要なIDをまとめて所得して処理を行い、
後はコピペするのみの形に整形したテキストを出力するスクリプトに留めた方が良いと思うよ。


44 名前:nobodyさん mailto:sage [2006/10/26(木) 16:45:14 ID:???]
Perlの2ch書き込みソフトならスレ保守ツールということでVectorにある。少々古くてhana=mogeraの追加修正が必要だが。

45 名前:nobodyさん mailto:sage [2006/10/26(木) 22:03:37 ID:???]
>コピペするのみの形に整形したテキスト
ここに質問するまではそれをベースに作っていたんですが、楽にできないものかと……。
勘違いされると確かにまずいですよね、保守ツールだったらよく見かけるんですけど……。

>Perlの2ch書き込みソフト
ありがとうございます、早速探してみます。

46 名前:nobodyさん mailto:sage [2006/10/27(金) 02:03:16 ID:???]
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Request::Common;
use HTTP::Headers;
print 'URI > '; chomp ( $entry = <> );
$entry =~ 'http://([^/]*)/([^/]*)/([^/]*)/([^/]*)/([0-9]*)';
($uriServer, $uriBbs, $uriKey, $uri) = ($1, $4, $5, "$1/test/bbs.cgi");
print 'MESSAGE > '; chomp ( $msg = <> );
$ua = new LWP::UserAgent;
$request = POST ($uri, [
subject => '',
FROM => '',
hana => 'mogera',
submit => '書き込む',
mail => 'sage',
MESSAGE => $msg,
bbs => $uriBbs,
key => $uriKey,
time => time]);
$request -> referer($uri);
$request -> user_agent('Monazilla/1.00');
$cookie_jar = HTTP::Cookies -> new( file => 'ume.cook', autosave => 1 );
$cookie_jar -> add_cookie_header($request);
$ua -> cookie_jar($cookie_jar);
$response = $ua -> request($request);


47 名前:nobodyさん mailto:sage [2006/10/29(日) 16:12:26 ID:???]
最近,Perlを使ったCGIで特定IPを拒否するルーチン入れてあり,
そのリストにあるIPにも関わらず書き込みをされるのですが,どんな原因が考えられますか?
例えば,自分のIPが200.10.10.10の場合,正規表現で指定して(200.*.*.*)もきちんと自分は拒否されます。
それなのに,いくつかすり抜けてくる迷惑書き込みは,一体どのようにしてるのでしょうか?
当然,直接そのIPを指定しても,効果がありません。(上の場合なら,200.10.10.10)

考えられるのは,@Perlが取得するIPアドレスの関数が偽装される。←可能なんでしょうか??
A違うCGIで直接ログファイルに書き込まれている。
というくらいしか思いつきません。
@はともかく,Aに関しては,プロバイダがHi-HOなので,こちらで細かいパーミッションの指定ができません。(たぶん)
他にも原因や対策がありますか?


48 名前:nobodyさん mailto:sage [2006/10/29(日) 20:10:26 ID:???]
3、そのルーチンがバグっている。

というか2ならログファイルの名前変えてダミー置いとけば解決じゃないのか。



49 名前:nobodyさん mailto:sage [2006/10/30(月) 01:09:22 ID:???]
リファラーをチェックして
他のサーバからの呼び出しを蹴る様にしたら?
正規表現でやると部分一致ですり抜けたり、リファラー自体が
偽装できるんであくまで簡易的だけどね。

my $myhome = "http://www.vipper/test.cgi";

if( !$ENV{'HTTP_REFERE'} =~ /^$myhome/ ) {
#エラー処理
} else {

}


50 名前:nobodyさん mailto:sage [2006/10/30(月) 03:31:49 ID:???]
/^\Q$myhome\E/

51 名前:nobodyさん mailto:sage [2006/10/30(月) 07:32:12 ID:???]
>>50
訂正ありがとう。
あとさ、馬鹿なんじゃねーかと。

REFEREって・・・REFERERだよな、ごめん。

52 名前:nobodyさん mailto:sage [2006/10/30(月) 21:36:17 ID:???]
余談だが、単語の綴りって意味で正確には
referrer
なんだけどな。

53 名前:47 mailto:sage [2006/10/31(火) 18:03:41 ID:???]
色々とアドバイスありがとうございます。
>48
ログファイル名変更が効果あるのは他のCGIで経験済みです。
最終手段だと思ってます。
それよりも,原因や他の技術的な対策などが知りたかったので。
言葉足らずですみません。

>49
試してみます。

54 名前:nobodyさん mailto:sage [2006/10/31(火) 20:28:02 ID:???]
ZIPやGZIPではなく、LZHを展開するモジュールはありますか?

55 名前:nobodyさん mailto:sage [2006/10/31(火) 21:15:35 ID:???]
無かったんじゃない?

56 名前:nobodyさん mailto:sage [2006/10/31(火) 22:44:48 ID:???]
コマンド呼び出ししかないだろうな。


57 名前:nobodyさん mailto:sage [2006/11/08(水) 04:25:42 ID:???]
文字コードshift_jisのままで、文字列中の\を置換する方法はありますか?
s/\\/?/g;
普通にこう書くと5Cを含む2バイト文字が化けてしまいます

58 名前:nobodyさん mailto:sage [2006/11/08(水) 05:28:40 ID:???]
quotometa
\Q\E



59 名前:nobodyさん [2006/11/24(金) 00:36:56 ID:67lrIFIn]
Perlからお気に入りのタブブラウザを起動するにはどうしますか?

60 名前:nobodyさん mailto:sage [2006/11/24(金) 00:46:06 ID:???]
system(起動プログラム);

61 名前:nobodyさん mailto:sage [2006/11/24(金) 00:50:56 ID:???]
>>60
できました!
ありがとうございます。ペコリ

62 名前:nobodyさん mailto:sage [2006/12/02(土) 17:26:24 ID:???]
>>46
の間違いって
$request -> user_agent('Monazilla/1.00');
$ua -> user_agent('Monazilla/1.00');
以外にある?

このあたりだと思うんだけど
$cookie_jar = HTTP::Cookies -> new( file => 'ume.cook', autosave => 1 );
$cookie_jar -> add_cookie_header($request);
$ua -> cookie_jar($cookie_jar);




63 名前:nobodyさん mailto:sage [2007/01/07(日) 08:03:18 ID:???]
CGIを作ろうとPerlの勉強を始め、
テキストに命令文を書き込んだのですが、
動作確認の仕方が分かりません。

書いたスクリプトを起動するにはどうすれば良いのでしょうか?

64 名前:nobodyさん mailto:sage [2007/01/07(日) 09:40:28 ID:???]
Perlをインストールしないと確認できません

65 名前:nobodyさん mailto:sage [2007/01/08(月) 10:40:10 ID:???]
ありがとうございます。
これからPerlのインストール方法を探しに行って来ます。

66 名前:nobodyさん mailto:sage [2007/01/08(月) 13:13:18 ID:???]
$host = $ENV{'REMOTE_HOST'}

このようにホストを取得した場合
これを
aaa.bbb.ccc →*.bbb.ccc
のように
一部を隠す場合はどのようにしたらいいでしょうか?
ホストの取得方法を変えなければいけませんか?
ご教授くださいませ




67 名前:nobodyさん mailto:sage [2007/01/11(木) 08:43:23 ID:???]
>>66
置換してから出力すればいいんじゃない?

68 名前:nobodyさん mailto:sage [2007/01/11(木) 08:45:37 ID:???]
>>66
$foo =~ s/.*?\.(.*?)/\*\.\1/;
かな



69 名前:nobodyさん mailto:sage [2007/01/11(木) 20:27:34 ID:???]
他のperiスレでも質問したのですが、スルーされてしまいました・・
マルチっぽくなってすみません。
拡張子が.plのスプリクトの動かし方を教えてください!!!
ActivePerlをインストールしたのですが、そこからどすればいいのか分かりません・・
.plファイルをダブルクリックしてもコマンドラインが一瞬でて消えるだけです・・
サーバーをレンタルしないといけないのでしょうか?
どなたか教えてください!!!

70 名前:nobodyさん mailto:sage [2007/01/11(木) 22:50:22 ID:???]
貴様が質問した1レスあとに答え書いてあるだろメクラ

71 名前:544 mailto:sage [2007/01/12(金) 00:31:09 ID:???]
難しくて意味が分りません!!!!!
コマンドプロテクトとかじゃなくて、exeファイルみたいに直感的に扱いたいです。

消防に分かるようにお願いします!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

72 名前:nobodyさん mailto:sage [2007/01/12(金) 03:40:35 ID:???]
でんげんコードをぬいて、自分の首にまいて、ちからを入れてひっぱる

73 名前:nobodyさん mailto:sage [2007/01/13(土) 07:21:59 ID:???]
>>903

そこまでやりました。
そしたら勃起しちゃいました・・
次はどうすれば?


74 名前:nobodyさん [2007/01/15(月) 22:32:53 ID:h8620fdS]
P2Pのゲームを作っていて、perl/CGIを使ってマッチングロビー、perl/cgiと
MYSQLを使って認証とプレイヤーの成績データのdbプログラムを組んでしま
す。
マッチングも認証プログラムもdbも完成するめどがたっているんですが、
ネット上に公開するとき、サーバの負荷とか良く分かりません。

たとえば、スクリプトが大きくなるけど、一度のサーバーアクセスで全て処
理できるよう、認証・マッチング・db処理のスクリプトを一つにしたほう
がいいのでしょうか。
ほんの少しサーバのアクセス回数が増えるけど、マッチングと、認証・dbを
分けてサイズを小さくし、必要な時に必要なCGIを呼び出した方がいいので
しょうか?

本当にくだらない質問ですみません。

75 名前:nobodyさん mailto:sage [2007/01/17(水) 09:50:41 ID:???]
当方環境がWINなので、ActivePerl5.8をインストールしました。
UNIXサーバーをレンタルしてcgiで動かす場合、通常のPerl5.8は必要なのでしょうか?
ActivePerlと共存しても大丈夫なんですが?
初歩的な質問ですみませんが、教えてくださです><

76 名前:nobodyさん mailto:sage [2007/01/17(水) 13:19:17 ID:???]
>>74
負荷を気にするならPerl CGIを選択する時点で間違い
>>75
バージョンはプログラムによる
PerlとActivePerlは共存させる必要はない

77 名前:nobodyさん [2007/02/05(月) 22:01:41 ID:Utbdeaaf]
Encode.pmは難しいので、使っているサーバがperl5.8対応でも、jcode.plを使ってもいいでしょうか?
本当に、何が何だが分からない質問で、すみません・・・

78 名前:nobodyさん mailto:sage [2007/02/05(月) 22:08:13 ID:???]
使えるよ。置換してるだけだから



79 名前:77 [2007/02/05(月) 22:56:56 ID:Utbdeaaf]
>>78
返答ありがとうございます。



80 名前:nobodyさん [2007/02/07(水) 23:15:43 ID:5L64/RF4]
dat.txtファイルに




とあって、「う」だけを表示させたいのですが、どういったプログラムになるのでしょうか?

81 名前:nobodyさん mailto:sage [2007/02/07(水) 23:59:35 ID:???]
エスパーさ〜〜ん、かも〜〜ん


82 名前:nobodyさん mailto:sage [2007/02/08(木) 01:05:33 ID:???]
>>80
print "う";

83 名前:nobodyさん [2007/02/08(木) 12:46:57 ID:ySrCcQfc]
別に「う」を表示させたいわけじゃない。
datファイルにある3列目の文字を表示させたい。

84 名前:nobodyさん mailto:sage [2007/02/08(木) 14:04:25 ID:???]
open(IN, "dat.txt");
while (<IN>){
print if($.==3);
}
close(IN);


85 名前:nobodyさん mailto:sage [2007/02/08(木) 14:25:54 ID:???]
open IN, "dat.txt" and print <IN>[3];
テストしてない

86 名前:nobodyさん mailto:sage [2007/02/08(木) 15:27:19 ID:???]
ありがとうございます。感謝です。

87 名前:あっこ [2007/02/08(木) 19:36:08 ID:LIdpjyEo]

docomo-camera-ne.jp/zeidoroom/20070208192740.jpg


docomo-camera-ne.jp/zeidoroom/20070208193455.jpg

ソース教えていただけませんか??

88 名前:nobodyさん mailto:sage [2007/02/08(木) 19:51:42 ID:???]
>>87
とりあえずいくつものスレにまたがって質問して回るのを止めろ。



89 名前:nobodyさん mailto:sage [2007/02/08(木) 20:48:25 ID:???]
CGI.pmってバグあるんですか?
バージョンは2.9です。
print $cgi->end_form;
って入力してもプリントされないんですが・・・

90 名前:91 mailto:sage [2007/02/08(木) 20:58:18 ID:???]
あ、すみません間違えました。

print $cgi->end_form;

ってやると、何故か、
<div></div></form>
ってプリントされるんです。
この<div>はなんなんでしょう?入れた覚え全くないんですが・・・

91 名前:nobodyさん mailto:sage [2007/02/09(金) 07:36:17 ID:???]
>>87
おまえCの宿題スレにもいたけど大丈夫なのか


92 名前:nobodyさん mailto:sage [2007/02/10(土) 14:46:42 ID:???]
CGIレスキューのショッピングバスケットプロ v6を使用しています。
このたび、アフェリエイト用のトラッキングタグを入れることになったのですが、
金額に関する変数の設定がわかりません。

cart.cgi内部の
$fee、$fee2、$SHOKEI2、$SHOKEI2、$orders

setup.cgi内部の
$j

など入れてみましたが、数値が出ません。

タグは注文の最終画面に入れ込みます。
注文IDに関してはすぐに出たのですが。。。。

エロイ方ご教授くださいませ。

93 名前:nobodyさん mailto:sage [2007/02/10(土) 17:59:27 ID:???]
>>92
改造スレへGo

っていうか仕事を2chに持ち込むなYO

94 名前:92 mailto:sage [2007/02/11(日) 12:29:23 ID:???]
>>93

誘導有難うございます。

がんばってみて、駄目なら移動してみます。

95 名前:nobodyさん mailto:sage [2007/02/18(日) 20:10:51 ID:???]
ttp://www.42ch.net/UploaderSmall/source/1171796861.zip
このスクリプトで、ログファイルへのデータ追加時に
現在の年日時を取得して
2007/2/18 20:09
のような形式で行の末端に自動的に書き込むようにしたいのですが、
どの部分にどのような処理を加えれば良いでしょうか?


96 名前:nobodyさん [2007/02/24(土) 08:30:18 ID:vuvrJgei]
最近外国人が宣伝目的で掲示板に書き込むので、なんどかしたい。
他の掲示板でも攻撃を受けているのをよく見かけます。

特徴としては、アルファベットのみで書き込むので、アルファベットのみの投稿の場合は
エラーにしたいのですが、そんなことは可能でしょうか?



97 名前:nobodyさん mailto:sage [2007/02/24(土) 10:17:57 ID:???]
>>96
EUC-JPだけど
# $str に ASCII 以外が含まれているか判定する

if ($str =~ /[\x8E\xA1-\xFE]/) {
print "含まれている\n";
}
引用元
www.din.or.jp/~ohzaki/perl.htm#JP_Exist


98 名前:nobodyさん [2007/02/26(月) 13:07:30 ID:bWsttIN4]
改造です。
先頭行でなく最終行を取得しないとマズいことに気づいたんですが
どうすればいいでしょうか。
---------
if ($in{'ori_ie_id'} eq "admin"){
$bbs1_log_file = "./member/admin/bbs".$in{'bbs_num'}."_log.cgi";
}else{
$bbs1_log_file = "./member/$in{'ori_ie_id'}/bbs1_log.cgi";
}
open(IN,"$bbs1_log_file") || &error("Open Error : $bbs1_log_file");
# 先頭行を取得
$total_counter = <IN>;
($total_counter,$all_total_counter)= split(/<>/, $total_counter);
$top = <IN>;
local($b_num,$b_name,$b_date,$b_res,$b_count,$b_com)= split(/<>/, $top);
--------------------------



99 名前:nobodyさん mailto:sage [2007/02/26(月) 16:00:02 ID:???]
よし、エスパー3級の俺が答えてやろう。

複数行の入力を取った場合配列になる。

@lines = <INPUT>;

この場合に最後の要素はこう所得できる。

$lastline = $lines[-1];

もしくはこう書いても良いだろう。

$lastline = pop(@lines);

これらの違いについてはマニュアルを嫁。

分かったら次からはエスパーじゃなくても分かる言葉で書くように。

100 名前:nobodyさん mailto:sage [2007/03/07(水) 21:52:50 ID:???]
なんか、トロイの木馬が検出されましたと出た。

101 名前:nobodyさん [2007/03/22(木) 13:03:52 ID:RsfMZKm1]
$value = '%e6%97%a5%e6%9c%ac%e8%aa%9e';
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
として走らせたところ、スクリプトをウェブサーバを通して呼んだときと
同じサーバのコマンドラインから呼んだときで
$valueの中が変わってきてしまいます。

linuxコマンドライン:ツづ可づ卍づアツつイ
linux上ウェブサーバ:にほんご

どうしてこうなっちゃうんでしょうか・・
コマンドラインから呼んだときでも"にほんご"とする方法はありますか?


102 名前:nobodyさん mailto:sage [2007/03/22(木) 13:08:13 ID:???]
そのコンソールは日本語表示に対応してますか

103 名前:101 mailto:sage [2007/03/22(木) 14:06:12 ID:???]
ごめんなさいよくわからないです。
linuxのサーバへはwindows上のtelnetでつないでまして、
さきほど、簡単にprintで"にほんご"と表示させるだけ、
もしくはファイルとして保存するだけのスクリプトを
スクリプト自体の文字コードをいろいろ変えて走らせてみたところ、
どれも漢字混じりでぐちゃぐちゃっとなり、まともに出ませんでした。
これって対応してないって事ですかね。。

104 名前:nobodyさん mailto:sage [2007/03/23(金) 12:35:39 ID:???]
せめてTeraterm使ってください

105 名前:nobodyさん mailto:sage [2007/03/26(月) 05:21:22 ID:???]
表示文字コードを変更できないプロンプトってあるの?

106 名前:nobodyさん [2007/04/18(水) 00:42:41 ID:2fOrfnuV]
#ディレクトリを開く
print "変換するフォルダのパスを入力してください\n";
$folder_path = <STDIN>;
chomp($folder_path); #改行コード削除
opendir(DIR, "$folder_path");
@file = readdir(DIR);
closedir(DIR);

#ファイル名を調べる
foreach (@file)
{
#htmlファイルなら処理
if( $_ =~ /.html/ ){
print "$1\n"; ##ここは呼ばれるが$1が空##
#ファイルを開く
open(F, "+< $_.$1" );
#ファイル1行読み込む
while($line = <F>){
#iso-8859-1をShift_JISに変換
if( $line =~ s/charset=iso-8859-1/charset=Shift_JIS/ ){
print(F "$line");
}
}
close(F);
}
}

htmlファイルの文字コードをかえるコードを書きたいのですが、うまくいきません。
どこが、間違ってるのでしょうか?

107 名前:nobodyさん mailto:sage [2007/04/18(水) 01:10:01 ID:???]
まずエラーメッセージを書こうぜ

108 名前:106 [2007/04/18(水) 01:17:05 ID:2fOrfnuV]
#ディレクトリを開く
print "変換するフォルダのパスを入力してください\n";
$folder_path = <STDIN>;
chomp($folder_path); #改行コード削除
opendir(DIR, "$folder_path");
@file = readdir(DIR);
closedir(DIR);
#ファイル名を調べる
foreach (@file)
{
#htmlファイルなら処理
if( $_ =~ /([A-Za-z0-9_]*\.html)/ ){
print (STDOUT "$1");
#ファイルを開く
if( !open(F, "+< $floder_path.$1" ) ){
printf(STDOUT "HTML読み込み失敗\n");
}
#ファイル1行読み込む
while($line = <F>){
print(STDOUT "変換\n");
#iso-8859-1をShift_JISに変換
if( $line =~ s/charset=iso-8859-1/charset=Shift_JIS/ ){
print(F "$line");
}
}
close(F);
}
}
としたところ、
ファイル名 HTML読み込み失敗
と表示されます。



109 名前:nobodyさん mailto:sage [2007/04/18(水) 01:22:04 ID:???]
じゃ動いてんじゃん

110 名前:106 [2007/04/18(水) 01:23:05 ID:2fOrfnuV]
ループにはいるまえに、カレントディレクトリをへんこうし
#カレントディレクトリ変更
chdir("$folder_path");

open(F, "+< $floder_path.$1" )を
open(F, "+< $1" )とすると置換の部分は実行できました。
しかし、置換前の文字が残ってしまいます


111 名前:nobodyさん mailto:sage [2007/04/18(水) 01:59:13 ID:???]
>置換の部分は実行できました。
>しかし、置換前の文字が残ってしまいます

バカじゃないんだから実行前の入力文字列と実行後の出力文字列くらい出せや

112 名前:nobodyさん mailto:sage [2007/04/18(水) 02:06:45 ID:???]
香ばしいなぁw 俺にもあったわこんな時代www

>>108
ファイル変換系の処理は「読み込むファイルに書き戻す」よりも
「読み込みつつ別のファイルに書き出す」ようにした方がいい。
書き出しが終わった後で削除&リネームすればいいだけだし、
途中で処理が止まっても安全。

あと微妙に板違いだから次からはプログラム板行けなw

113 名前:106 [2007/04/18(水) 02:57:11 ID:2fOrfnuV]
別ファイルに書き出しでやってみます
ありがとうございました。
つぎからはプログラム板逝きます


114 名前:nobodyさん mailto:ファンより [2007/04/18(水) 03:45:43 ID:???]
島根県のみなさん、パチンコをするなら、

  優良パチンコ店 エ○トワン  

に行こう! 遠隔(※1)をやっていないパチンコ店は「エイ○ワン」だけ!
違法ロム(※2)を使っていないパチンコ店も「エイト○ン」だけ!
○イトワンでは、遠隔等が可能な設備は入れていません。 ロムも、警察がチェックしやすくしています。

詳しい方はご存知の通り、どんなにパチンコの遊戯人口が変動しても、その市場規模は変わりません(※3)。
要するに、客が減っても、残った客から絞り盗る量を増やして調整しているのです。
しかし、何故それが可能なのか?…ご理解頂けると思いますが、9割以上の店が確実に遠隔等を行ってます。
1万店以上のパチンコ店の中で、遠隔も違法ロムも確実にやってないのは「○イトワン」ただ1店です!

※1…遠隔とは
 「お、あの客は新顔だな。勝たせて味を占めさせるか。遠隔操作で設定変更しよ」
 「客が減ってきたな。ま、設定を絞めて(違法)、1人あたりから搾る量を増やせばいいか」
 「あのオヤジ負け続けてるからそろそろ辞めるかもな。今日は勝たせてやるか」

※2…違法ロムとは
 「うちのアタリ確率は、もちろん他と同じ『○○○分の1』ですよ!(ロムいじってるからウソだけど)」

※3       市場規模   遊戯人口
 平成06年 30兆4,780億円 2,930万人
 平成08年 30兆0,630億円 2,760万人
 平成10年 28兆0,570億円 1,980万人
 平成12年 28兆6,970億円 2,020万人
 平成14年 29兆2,250億円 2,170万人
 平成16年 29兆4,860億円 1,790万人

115 名前:nobodyさん mailto:sage [2007/04/24(火) 12:15:29 ID:???]
perlでそれなりに大きなCGIを作ることになったのですが
いろいろな関数をまとめた物を作るときに
それらを単純にまとめただけの外部plファイルを
requireして使いまわすよりも、パッケージ化や
モジュール化して使ったほうが良いと
聞いたのですが、何故でしょうか


116 名前:nobodyさん mailto:sage [2007/04/24(火) 14:22:11 ID:???]
パッケージ化することによって、関数(メソッド)や変数(属性)の名前衝突を避けることができ、
モジュールをつかいまわす場合に有効。


117 名前:nobodyさん [2007/04/24(火) 14:37:40 ID:RJoF4cmJ]
Windowsマシンで、Apache + ActivePerlを使用して、ローカルでPerlの勉強をしているんですが、
Perlのコードにエラーがあると、
use Strict; を記述しても、500 Internal Server Errorになってしまいます。
(どういうエラーが出たか教えてくれない)
エラーを表示させるにはどうしたらいいんでしょうか。

各バージョンは、
Perl v5.8.8
Apache 2.0.59
です。

118 名前:nobodyさん mailto:sage [2007/04/24(火) 17:10:54 ID:???]
>>116
なるほど。変数名の衝突を気にしなくてもいいのは便利ですね
これからパッケージの勉強からしてみます
ありがとうございました




119 名前:nobodyさん mailto:sage [2007/04/24(火) 17:23:24 ID:???]
>>117
スクリプトの頭に

BEGIN {print "Content-Type: text/plain\n\n"; $| = 1; open(STDERR, '>&STDOUT')}

とでも書いとけ

120 名前:nobodyさん [2007/04/25(水) 02:24:17 ID:lSJlnLTR]
>>117
モジュールつかっとけ
use CGI::Carp qw(fatalsToBrowser);


ttp://perldoc.jp/docs/modules/CGI.pm-2.89/CGI/Carp.pod


121 名前:nobodyさん mailto:sage [2007/04/25(水) 20:53:26 ID:???]
[ディレクトリ構成]
xxx/
 index.html
 
 data/
  post.dat

cgi-bin/
 xxx/
  post.cgi

と置いてあります。このとき
#!C:/Perl/bin/perl
open(OUT,">> ../../xxx/data/post.dat");
print OUT "$FORM{'posturl'}\n";
close(OUT);

と post.cgi に記述してみたのですが、うまく
post.dat のほうに $FORM{'posturl'} の内容が書き込めていないようでした。
パスの設定ミスだとは思うのですが…

環境は,windows xp sp2 上 でApache/2.0.45 を使用しております。
どうぞよろしくお願い致します m(__)m

122 名前:nobodyさん mailto:sage [2007/04/25(水) 22:02:43 ID:???]
それだけじゃさっぱり

123 名前:nobodyさん mailto:sage [2007/04/25(水) 22:56:34 ID:???]
自己解決スマソ。
open(OUT,">> ../../htdocs/xxx/data/post.dat");

とすれば良かったみたいです。
htdocs/
- xxx/index.html
- xxx/data/post.dat

cgi-bin/xxx/post.cgi

webプログラムってプログラム以外の部分がややこしい…

124 名前:nobodyさん [2007/04/26(木) 16:20:32 ID:Xsmaee58]
■ Perl言語 ■ 何でも質問コーナー ■
mixi.jp/view_bbs.pl?id=17607679&comm_id=1401396
Perlに関すること、cgiに関すること
なんでも質問できるコーナーです(たとえばApacheとかでもOKとします!)
(Web系であればOK)

ルール:
Google検索で調べてわかるようなことでも質問してもOKです
(初心者のうちは、どの情報を取捨選択したらイイのかわからないと思うので)
回答してくださるかたは、暖かく質問者を迎えてやってください
o(^^o) (o^^)o

125 名前:nobodyさん mailto:sage [2007/05/01(火) 16:23:34 ID:???]
PerlでファイルアップロードCGIを作ろうとしています。
「1. ファイルを選ぶ 2. 確認画面 3. 送信完了」と動作させようとして
躓きました。2. 確認画面を表示しない場合はうまくいくのですが、
確認画面を間に挟むと空のファイルがアップロードされてしまいます。

1 から直接 3 にいくプログラムは次のように組んであります。
 1. CGI.pmを使ってfilefield('file');でファイル選択させる。
 3. $fh = upload('file'); でファイルの情報を得て、
   while(read...){print...} でファイルを書き込む。

2 をはさむときは、param('fh', $fh); print hidden('fh');
として情報を保存しました。

たぶん、上の方法では必要な情報を保存しきれていないのだと
思うのですが、どうすればよいかわかりません。よろしくお願いします。

126 名前:nobodyさん mailto:sage [2007/05/03(木) 02:37:57 ID:???]
無理

127 名前:初心スレ861(481) [2007/05/25(金) 22:03:25 ID:1LPPhSSe]
質問です

if(a=1){
if(b=1){
print "○○○"
}
}
というようにIFの中でIFは可能ですか?

128 名前:nobodyさん mailto:sage [2007/05/25(金) 22:17:31 ID:???]
歴史にIFなど無いのだよ



129 名前:nobodyさん mailto:sage [2007/05/25(金) 23:10:03 ID:???]
>>127
なぜ不可能だと思うんですか?

130 名前:nobodyさん mailto:sage [2007/05/25(金) 23:29:35 ID:???]
>>129
うごいていたプログラムのIFの中にIF入れたら壊れたからです
何か他にげんいんがあるのかお

131 名前:nobodyさん mailto:sage [2007/05/25(金) 23:47:26 ID:???]
お前のプログラム知識だよ

132 名前:nobodyさん mailto:sage [2007/05/26(土) 05:47:48 ID:???]
if(a=1)

なんか懐かしいなw
こういうの見たの15年ぶりだよ。

133 名前:nobodyさん mailto:sage [2007/05/26(土) 23:39:33 ID:???]
perl 関連スレッドに機会があったらいつか書こうと思って
たんだが、機会が無いのでここに独り言として書く。

[初心者のための perldoc ]
perldoc は、本を開かなくともいつでも開くことが出来る手軽なリファレンスだ。

ターミナルで「perldoc perl」と打ち込むだけで概要が出てくる。SYNOPSIS に
リストがつらつら書かれているがそれぞれ perldoc で呼び出すことができる
1. とりあえず基礎の基礎を読んでみたいなら「perldoc perlintro」
 ( for, while, if などもここを最初に )
 array of array などなら「perldoc perllol」
 正規表現なら、「perldoc perlre」
 スイッチ(所謂コマンドラインオプション)なら「perldoc perlrun」
 etc...
 これらの文章中 see perlxxxx.... と書かれていたら素直に
 「perldoc perlxxxx」すればよい。
2. 個々の関数について調べたいなら
 「perldoc -f reverse」
 などと f オプションを付けて実行する。
3. 取り敢えず、なんか判らんって時。例えば「配列」
 「perldoc -q array」
 faq の中から array を含む文章拾ってくれる。但し question のみ。
4. 個々の説明文 pod にアクセスしたい時
 「perldoc Tie::File」
 「perldoc strict」
5. 「perldoc -h」すれば、perldoc の使い方の説明が出てくる。
perldoc の中身には例文も出てくるので、英語が判らんでも 2ch に
相談するまえに見てみることをお勧めする。
どーしても、という方には web 上にはそれなりに翻訳された perldoc が
あるのでターミナルで「perldoc perl」でリストの中から目星を付け、
そのファイル名で検索するのも良い。
(但し最新版ではない事がほとんどなので注意が必要)

134 名前:nobodyさん [2007/05/29(火) 00:59:04 ID:+KVPsKMz]
質問です。

#!/usr/bin/perl

open (IN,"< http://あqwせdrftgyふじこ/test.dat") ;
@LINES = <IN>;
close(IN);

print "Content-type: text/html\n\n";
print "<html><head></head><body>";

foreach(@LINES){
 print $_ . "\n";
}
 print "</body></html>";
}

こんな感じでhttpから始まるURLをうって
ファイルを開いて処理したいんですがどうやら読めないっぽいです。

open (IN,"test.dat") ;
に変えると動いてくれるのですが、、、

仕様上不可能なんでしょうか?


135 名前:nobodyさん mailto:sage [2007/05/29(火) 01:19:04 ID:???]
>>134
allow_url_fopen が効いてる PHP みたいな、裏でどうにかしてくれる仕掛けはありません。
LWP使えば外部のファイル自体は取得できるけど。

136 名前:nobodyさん [2007/05/29(火) 02:04:54 ID:+KVPsKMz]
>>135
こんな時間にレスあり ><

use LWP::Simple;
$a = get("http://くぁwせdrfgyふじこ/test.dat");

で取得できました。ありがとうございました。

これで気持ちよく眠れます。

137 名前:nobodyさん mailto:sage [2007/06/03(日) 00:26:01 ID:???]
久しぶりにperlでcgi作ろうかと思うんだけど、今はutf8で書くのが一般意的?

138 名前:nobodyさん mailto:sage [2007/06/03(日) 13:53:14 ID:???]
なんでもおk



139 名前:nobodyさん mailto:sage [2007/06/05(火) 13:52:29 ID:???]
ブラウザで操作をして
自サーバ内のファイルを別サーバへコピーしたいんですが(セキュアFTPサーバ)
Net::FTP
を使って、セキュアなFTPサーバへ接続は出来ますか?
もしくは、可能な別モジュールってありますか?

140 名前:nobodyさん [2007/06/07(木) 14:40:32 ID:TOlQmlY8]
すいません。
定期的にフォーム部品の個数が変わるフォームで、
1コでも未記入があった場合にエラーが出したいんです。

radio1
radio2
radio3
textarea1
textarea2
radio4



その時によって、フォーム部品の数が増えたり減ったりします。
汎用的に未記入があった時にエラーを返すにはどうしたらいいでしょう?






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

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

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