Perl コーディング初心者質問コーナー Part37
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
04/08/22 01:41ID:???誰もが最初は初心者。
だからって、初心者に甘んじた質問の仕方は意味がないよ。
【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
00021
04/08/22 01:43ID:???関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc2.2ch.net/test/read.cgi/php/1077525387/
【 スクリプト改造依頼スレ 】(丸投げ) part2
http://pc5.2ch.net/test/read.cgi/php/1092304968/
△▲ WebProg 初心者の質問 Part9 ▼▽
http://pc5.2ch.net/test/read.cgi/php/1086715675/
【Perl】ファイルロック(排他処理)について語ろう
http://pc2.2ch.net/test/read.cgi/php/1024795138/
★負荷軽減対策委員会(Perl、PHP)★
http://pc2.2ch.net/test/read.cgi/php/1034645635/
【Perl】掲示板を使ろう!
http://pc2.2ch.net/test/read.cgi/php/988890976/
Perlモジュールについて
http://pc2.2ch.net/test/read.cgi/php/997829243/
CGIに依存しないPerlの話題一般/Part2
http://pc2.2ch.net/test/read.cgi/php/1030548610/
00031
04/08/22 01:43ID:???Part1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980 参照不能
DAT: http://tako.2ch.net/perl/dat/957208980.dat
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087 参照不能
DAT: http://tako.2ch.net/perl/dat/971817087.dat
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part4 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156 参照不能
DAT: http://tako.2ch.net/perl/dat/979894521.dat
Part5 http://pc.2ch.net/php/kako/988/988728069.html
Part6 http://pc.2ch.net/php/kako/996/996075607.html
Part7 http://pc.2ch.net/php/kako/1000/10002/1000267444.html
Part8 http://pc.2ch.net/php/kako/1003/10039/1003900311.html
Part9 http://pc.2ch.net/php/kako/1009/10095/1009549309.html
Part10 http://pc.2ch.net/php/kako/1014/10145/1014556702.html
Part11 http://pc.2ch.net/php/kako/1017/10172/1017201229.html
Part12 http://pc.2ch.net/php/kako/1019/10199/1019917048.html
Part13 http://pc.2ch.net/php/kako/1022/10227/1022731565.html
Part14 http://pc.2ch.net/php/kako/1026/10269/1026977659.html
Part15 http://pc.2ch.net/php/kako/1028/10288/1028816385.html
00041
04/08/22 01:44ID:???Part16 http://pc.2ch.net/php/kako/1032/10320/1032070299.html
part17 http://pc.2ch.net/php/kako/1034/10345/1034583844.html
part18 http://pc.2ch.net/php/kako/1037/10377/1037797479.html
part19 http://pc.2ch.net/php/kako/1042/10422/1042260745.html
part20 http://pc2.2ch.net/php/kako/1044/10447/1044717887.html (タイトルに19と誤記)
part21 http://pc2.2ch.net/php/kako/1047/10479/1047980851.html
part22 http://pc2.2ch.net/php/kako/1050/10503/1050369328.html
part23 http://pc2.2ch.net/php/kako/1053/10530/1053051519.html
part24 http://pc2.2ch.net/php/kako/1054/10549/1054992610.html
part25 http://pc2.2ch.net/php/kako/1056/10567/1056730690.html
part26 http://pc5.2ch.net/php/kako/1059/10590/1059043704.html
part27 http://pc5.2ch.net/php/kako/1060/10608/1060808783.html
part28 http://pc5.2ch.net/php/kako/1063/10635/1063562491.html
part29 http://pc5.2ch.net/php/kako/1066/10662/1066286828.html
part30 http://pc5.2ch.net/test/read.cgi/php/1069846177/
part31 http://pc5.2ch.net/test/read.cgi/php/1072896288/
part32 http://pc5.2ch.net/test/read.cgi/php/1075545279/ (タイトルに31と誤記)
part33 http://pc5.2ch.net/test/read.cgi/php/1078076768/
part34 http://pc5.2ch.net/test/read.cgi/php/1081148490/
part35 http://pc5.2ch.net/test/read.cgi/php/1085557731/
part36 http://pc5.2ch.net/test/read.cgi/php/1089779036/(前スレ)
00051
04/08/22 01:45ID:???[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: http://www5a.biglobe.ne.jp/~n_rieko/perl/
[本]
リャマ: http://www.oreilly.co.jp/BOOK/lperl3/
駱駝: http://www.oreilly.co.jp/BOOK/pperl3v1/
Effective Perl: http://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: http://www.oreilly.co.jp/BOOK/pcook/
[オンラインマニュアル]
Perldoc.com: http://www.perldoc.com/
perldoc.jp: http://www.perldoc.jp/
perl5.005_03 のドキュメント: http://www.kt.rim.or.jp/%7ekbk/perl5.005/
[モジュール]
CPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://member.nifty.ne.jp/hippo2000/
[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/
00061
04/08/22 01:45ID:???コーディング 【coding】
プログラミング言語を使ってソフトウェアの設計図にあたるソースコードを作成すること。
「プログラミング」とほぼ同義だが、仕様書やフローチャートなど抽象的な設計文書の内容を、
プログラミング言語を使って具体的なコードに変換していく、という意味合いが強い。
(e-Wordsより)
自分の質問がPerlに関することなのか、
それともPerlではなくCGIやHTMLについてなのかを切り分けした上で、
質問して下さい。
00071
04/08/22 01:47ID:???http://www.geocities.co.jp/SiliconValley/5656/
とか
http://www.hyuki.com/writing/techask.html
なんかを参考にするといい。
ここでは匿名で書き込むことが出来るけど、
その他のマナーなんかの点は実名公開のMLなんかと一緒。
マターリ行きましょ。
0009nobodyさん
04/08/22 02:06ID:???いらっしゃーい、Perlのコーディングで困ってる人のスレです。
【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログやお勧めサイトは >>2-10
0010前スレ989ですが
04/08/22 02:09ID:???さっきから貼ろうとしてるんだけど Time out が出るばかりで貼れないんです...orz
0011nobodyさん
04/08/22 02:21ID:???グダグダなスレになっちまったな。
0012nobodyさん
04/08/22 03:05ID:???Part1 http://www.angelfire.com/ak5/2ch-web-program/kako/957208980.html
Part2 http://www.angelfire.com/ak5/2ch-web-program/kako/971817087.html
Part3 http://www.angelfire.com/ak5/2ch-web-program/kako/979894521.html
Part4 http://www.angelfire.com/ak5/2ch-web-program/kako/984430156.html
Part5 http://www.angelfire.com/ak5/2ch-web-program/kako/988728069.html
0013nobodyさん
04/08/22 03:05ID:???0014nobodyさん
04/08/22 03:06ID:???・http://www.excite.co.jp/world/ # 英文のページ多いから一応
・Perl Com: http://www.perl.com/
・CPAN.com: http://search.cpan.org/
・ActivePerl: http://www.activestate.com/
・CGI-ML:http://forest.ne.jp/cgi-ml/
[お薦め]
・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm ★読んどけ
・Perl Recipes: http://www.effectiveperl.com/recipes/ # 死んでるか?
・Randal's WebTechniques columns: http://www.stonehenge.com/merlyn/WebTechniques/
・Perlの部屋: http://www.cc.rim.or.jp/~midorin/mad-p/perl/index.html
・Perl初心者の部屋:http://www.harukaze.net/~mishima/perl/
・Perlリファレンス:http://www.big.or.jp/~mio/ga/pl/plref/pl_ref.htm
・Perlのページ:http://homepage1.nifty.com/nomenclator/perl/
0015nobodyさん
04/08/22 08:46ID:???0016966
04/08/22 13:14ID:???ブロックないではreturnは使えないからそれようのルーチンでも作る。
ってことでok?
00191
04/08/22 14:11ID:???################
#ここから言い訳#
################
#いや、5の張り忘れに気づいて張ろうと思ったら
#連続投稿規制に引っかかっちゃったのよ。ゴメソ
#
#たださ、聞きたいんだけど>>1って書き換えちゃいけないもんなの?
#過去にも何度か変わってきてるから、概要があってりゃいいと思ったんだけど。
#無意味な中傷はキニシ(・∀・)ナーイ
0020nobodyさん
04/08/22 14:51ID:???内容に納得いかないとスレ乱立になるときがある。
だから書き変えるときは前スレでちゃんと同意をとれ。
とりあえずスレ立てご苦労様。
0021nobodyさん
04/08/22 14:52ID:???> 誰もが最初は初心者。
こんなこと書くなよタコ。
「誰もが最初は初心者」=「回答者は質問者に尽くすべし」っていう脳内変換が起きるんだから。
次の行で何か書いてるけど意味ねぇよ。一度↑こうなったら何を言っても無駄。
002310
04/08/22 15:40ID:???Perl コーディング初心者質問コーナー Part37
http://pc5.2ch.net/test/read.cgi/php/1093134840/
↑これ立てて 2 で挫折した人は早急に削除依頼へゴー。
>>19
とりあえずスレ立て乙。自分は立てられなかったし。
テンプレ部の改定は当然可だけど、他の人の意見もあるからね。
Part35→36のときは
「改定点は?」「スレ違いのお客さんが多いよね」みたいな話があったうえで
>>6の補足が入ったから、もめたりしなかったわけですよ。
個人的には >>1 は構わないけど >>2 を見たときに「お礼はうれしいけど、そこに書いたらあかん!」と
思ったのと、あと >>7 が余分かな。
# 初心者さんは見に行かないし、回答者はURL見ただけで「あー、はいはい」だからね。
とりあえず、この状況が続くと質問者さんが来づらいだろから、事態の収拾を考えましょ。
00241
04/08/22 16:01ID:???やっぱり、このスレの人たちは教えるのに向いてるよ。色々ありがとう。
こんな状態でアレなんだけど、2つ目の中途半端なスレの方が上にあると、
どうしようもないだろうから一応ageとくことにする。
0025nobodyさん
04/08/22 16:09ID:???0026nobodyさん
04/08/22 16:28ID:???http://pc5.2ch.net/test/read.cgi/tech/1090889189/641-
Perlにバグがあったみたい..
0027nobodyさん
04/08/22 18:53ID:???0028nobodyさん
04/08/22 20:18ID:Bvv0gWWGsub foo 内で @x と @y を別に受け取ることはできますか?
@_ だと結合されているので・・・
003028
04/08/22 20:39ID:Bvv0gWWG素直にリファレンスを使います。
どうも。
0031nobodyさん
04/08/22 22:09ID:???もひとつの Part37 を立てた人がほったらかしてるっぽいんで、
こちらへの誘導貼り付け&削除依頼して来ようかと思うんだけど、
皆さんのご意見は?
0037nobodyさん
04/08/23 13:11ID:???perldoc perlsub
sub foo(\@\@) {
my ($x, $y) = @_;
print "x: @$x\n";
print "y: @$y\n";
}
foo(@x, @y);
便乗質問
リファレンスの場合は、sub foo($$); で宣言して、foo([1..10], [1..10]) みたいに直接値を渡せるけど。
sub foo(\@\@); の場合って、配列変数に値を入れてからじゃないと無理?
0038nobodyさん
04/08/23 13:22ID:???0039nobodyさん
04/08/23 15:01ID:???>>28 に「perldoc perlsub」とか書いておいて自分は読まないのか?
<q cite="http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlsub.html#Prototypes">
バックスラッシュが付けられたプロトタイプキャラクターは、実引数がその
キャラクターで始まるものでなければならないことを表します。
<snip>
$で表される引数はスカラーコンテキストを強制されます。
</q>
sub mypush(\@$) { push @{ shift @_ }, @_ }
my $array = [0..3];
my @array = (6..9);
my $rv = mypush @{$array}, @array;
print join ',', @{$array}, "$rv\n"; # 0,1,2,3,4,5
0040nobodyさん
04/08/23 23:46ID:73HB43dmindex.cgi had compilation errors.
こんなのがでます。なにが悪いんですか?
0042nobodyさん
04/08/24 00:28ID:???悔しいけど、ちょとワロタ。でも、もすこしサービスしなさいな。
>>40
これだけではなにが悪いのかわかりませんよ。
index.cgiの191行めに
my (1, 2, 3);
↑例えばこんな行がありそうな気はするけれど。
004440
04/08/24 01:36ID:a9PEnejB0045nobodyさん
04/08/24 03:09ID:???ここは質問と回答で成り立つスレです。
後から同じ状況に陥った人が参考にできるように
何をどうしたら解決したのか、
原因は何だったのか、
かわいい妹がいるのかどうか、
そういった事をきちんと書きなさい。
0046nobodyさん
04/08/24 12:22ID:???0049nobodyさん
04/08/24 18:35ID:nkf/AOE6mime_pls?モジュール?自作?
自作ってカッコイイよな。
0050nobodyさん
04/08/24 19:10ID:???0055いらすま
04/08/24 21:03ID:Hn5K2dOO掲示板の背景の色をかえたいのですが、どうしたらよいので??
0059nobodyさん
04/08/24 22:30ID:???ってまあ74バイト区切りで改行いれなきゃいけないとか面倒なことがあってそれだけじゃたりないんだっけ?
フォームメールなんて作ったことないからわからんなw
0061nobodyさん
04/08/24 23:20ID:???0063nobodyさん
04/08/25 00:17ID:???0064nobodyさん
04/08/25 00:40ID:???最近オブジェクト指向でモジュールを1個作ってみたんだけど、確かに再利用性は高いし
インターフェースだけ覚えとくだけで便利なのは間違いないけど、それってライブラリもそんなに大差ないよね。
ライブラリの方が手軽だしさ。
まあDBIくらいになるとオブジェクト指向の方がいいんだけど、みんなはどんな感じで使ってる?
やっぱ小中規模であれば、1個モジュール1個ライブラリってのがいいと思うんだけどさ。
0065nobodyさん
04/08/25 00:48ID:???メインルーチンを再利用したいなら、クラスモジュールにしとく方が有利かも。
0066nobodyさん
04/08/25 01:06ID:???ほう!そうゆう考え方が主流なのね。
基本的にある程度の振る舞いをもったオブジェクトが欲しい時とか
一貫性のある処理でそれだけで独立させたいときがムジュール。
ちょっとこれだけ再利用。みたいなものの集まりをライブラリとするってのが賢いよね。
ボンジュ〜ル?
0067nobodyさん
04/08/25 01:17ID:???0069nobodyさん
04/08/25 10:09ID:piXV00NL画像連結ライブラリを使うと本当に読み込みが早くなるのでしょうか?
返答よろしくお願いします
0070nobodyさん
04/08/25 10:13ID:???007169
04/08/25 11:23ID:???0072nobodyさん
04/08/25 11:24ID:???カウンタなんて小さい画像の集まりだから、HTTPヘッダによるオーバーヘッド分がなくなるだけでも有利でしょうな。
大きな画像連結なら負荷やメモリを気にするところだが。
Perlの手始めは向いてるね。カウンタ。
0074nobodyさん
04/08/25 11:34ID:???0075nobodyさん
04/08/25 11:36ID:???0077nobodyさん
04/08/25 11:40ID:???0078nobodyさん
04/08/25 12:39ID:???お前みたいにくだらない部分にこだわるやつに限ってゴミソースで重かったりする。
だまってテーブルレイアウトやめればそんなくだらない差は気にならなくなる。
ついでに言うと連結処理あり、なしのベンチとってそれもちゃんと考慮に入れろや。
0079nobodyさん
04/08/25 18:46ID:???1000ファイルもあると I/O のコストの方が高くならない?
逆にHTTPサーバーの方のキャッシュが期待できる連結なしの方が早くなりそうだし、
最適化の仕方次第で結果が代わったりするんじゃないかな。(予想だけど
ベンチマークとるなら実際の運用環境に近い条件でやらないと意味がないと思う
>>69
GIF画像の連結はやったことないので、一般的な回答になるけど。
アルゴリズムの優劣とかならはっきりとした一般答がでるかもしれない、
でも、こういった、環境や実装に大きく依存するベンチマークは自分でとらないと役にたたない。
画像連結の方法だけとってみても、perlでやるのか、ライブラリか、外部プログラムに頼るのかで結果が代わってくるはず。
0080nobodyさん
04/08/25 18:59ID:???この場合、キャッシュは考慮すべきといっても、offにすべきではないと思う。
連結なしの場合、httpヘッダでcache controlや期限を適切に設定していれば、
ファイルを送る必要はなく文字列出力だけで済む事もあるのだから。
クライアント数とアクセス数を分けて考えてテストする必要がある。
(再訪問者が多い場合にクライアント側のキャッシュの効果が期待できる)
0081nobodyさん
04/08/25 19:21ID:???http://pc5.2ch.net/test/read.cgi/php/1060009605/l50
0082nobodyさん
04/08/25 19:25ID:???(;・∀・)また、騙されたの?
ttp://pc5.2ch.net/test/read.cgi/php/1060009605/
% kill -9 81 || kill -9 81 || kill -9 81
% killall -TERM me
0083nobodyさん
04/08/25 23:12ID:???今回に限って言えば、ベンチは意味が薄いのではないだろうか。
サーバとの経路とかでも結果が大きく変わるだろうし。
0084nobodyさん
04/08/26 00:15ID:???2種類のレスポンスを返す方法ってありますか?
例えば
GETで要求されたURLの応答に
200 OK
を返した直後にクライアントとの接続を閉じずに
304 Not Modified
を返せるような。
どなたかお知恵を貸してください。お願いします。
0085nobodyさん
04/08/26 00:19ID:???無理。
どういう理由でそういうことをしたいのかを明確に書けば別解のアドバイスが出てくるかも知れず。
でも、ここはperlコーディングスレなので、webprog 初心者スレの方がいいんじゃないかな。
0087nobodyさん
04/08/27 07:40ID:gO3gmMRy作ればよいのでしょうか?
例えばどこかのhtmlから<!--#exec cmd="ransuu.cgi"-->を呼び出すと
253145968や040104580とかランダムな9桁の数値を返すものです。
全くの初心者で困っています。教えて下さい、お願いします。
0088nobodyさん
04/08/27 07:52ID:???009288
04/08/27 15:08ID:???0093nobodyさん
04/08/27 17:15ID:???<INPUT type="submit" name="Reload" value="再読込">
</FORM>
こんな感じでホームページに設置されているボタンを押すPerlスクリプトって作れないでしょうか。
0095nobodyさん
04/08/27 18:07ID:???こういう感じのサーバなのです
1.FTPサーバーに管理ファイルをアップする。
2.社内のローカルホスト(http://192.168.0.200:8080/reload.html)にアクセスして更新ボタンを押して更新完了
3.上記をファイルの数だけ繰り返す
私のところに1の管理ファイルがバイトから1日10件くらい集まるので、
これをいちいちアップして更新して・・・というのは、かなり面倒なのですが、
社内鯖の仕様を変更するのは問題があるので、自動でアップ処理してくれるスクリプトを組もうと思った次第です。
最終的には
1.設定フォルダ内のファイルを社内鯖にアップする
2.更新ボタンを押す
3.これを毎朝9時に行う
ということをしたいのです。
0096nobodyさん
04/08/27 18:17ID:ScoK2mkg対策@私の場合
1.バイト君にFTPサーバーの特定のディレクトリにファイルをうpするように指示をする。
2.その特定のディレクトリを監視するスクリプトを、例えばcronで1時間ごとに起動して、
ファイルが存在すれば何らかの更新作業をさせる。
3.私は他の作業をする。
0097nobodyさん
04/08/27 18:17ID:???0098nobodyさん
04/08/27 18:50ID:???0099nobodyさん
04/08/27 18:53ID:???getならリクエスト1個で終わるんだけどね
0100nobodyさん
04/08/27 19:08ID:???010293
04/08/27 19:15ID:???WWWは扱ったことがないので、ぐぐって勉強してます。
>96
支給されてるクライアントがNTなので、タスクマネージャーで実行しようと思ってます。
>99
サーバ側の仕様には手を出せないのでPOSTでがんばってます。
>100
ttp://member.nifty.ne.jp/hippo2000/perltips/LWP.html
これでいいんでしょうか? 入手してみます。
0103nobodyさん
04/08/27 20:43ID:???0104nobodyさん
04/08/27 22:09ID:ScoK2mkg> 支給されてるクライアントがNTなので、タスクマネージャーで実行しようと思ってます。
ではそれで毎日9時に動くようにすれば?
でもってなぜCGIが必要なんだろう?
確認ならばメールで通知、返信すれば自動で更新作業させるなりと方法はあるのに。
0105nobodyさん
04/08/27 22:28ID:???ブラウザ立ち上げておかないといけないし、強制終了してしまっていたら立ち上げなおしたりしなきゃいかんし。
0106nobodyさん
04/08/27 22:34ID:???おまえら少しは文章を嫁
010793
04/08/27 23:10ID:???ttp://digit.que.ne.jp/work/index.cgi?Perl%a5%e2%a5%b8%a5%e5%a1%bc%a5%eb%2fLWP#i5
この辺りを読んで解決しました。また1つ賢くなれました。ありがとうございました。
0110nobodyさん
04/08/28 13:06ID:???ボタンを押すのが簡単ってのは人間が操作する場合で、プログラムにとっては、POSTリクエスト送る方が簡単。
プログラムでそういったことをエミュレートしたいなら、ブラウザのオートメーションを調べてみるといい。
冗長になるは言うまでもないけど。一応フォローしておくと、
HTTPの仕組みを知らない人にとってはこっちの方がコードが簡潔だったりする、
ちょっとした用途にスクリプトを書く場合でもコードを大幅に節約できるといった利点がある.
0111nobodyさん
04/08/28 17:38ID:???0112nobodyさん
04/08/29 22:39ID:???エスケープが必要な文字の検索で詰まってます。
$str =~ s/($key)/<$1>/g;
こんな感じで、ヒットしたキーの前後に文字を追加してるんですが、
これだと、正規表現の文字(ドット. や プラス+ )自体を検索することが
できません。
何かいい方法ありますでしょうか
0113nobodyさん
04/08/29 22:53ID:???http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlfaq6.html#How_do_I_match_a_pattern_that_is
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlre.html
http://perldoc.com/perl5.8.4/pod/func/quotemeta.html
0115nobodyさん
04/08/30 10:02ID:???0116nobodyさん
04/08/30 10:28ID:???0117nobodyさん
04/08/30 13:20ID:WEq7wEdz"/" でセパレートされた文字列を分解してそれぞれ配列に入れたいのですが、
どうすればいいか教えてください。
0122nobodyさん
04/08/30 17:23ID:???0123nobodyさん
04/08/30 17:29ID:I+lehIeA以下のようにやってもエラーになります。
perl -e '$var=1; $var1=1; $var2=1; print "Ok!\n" if ($var==$var1==$var2==1);'
どうやったらいいのでしょうか。おせーてください。
0125nobodyさん
04/08/30 17:41ID:???えっと、>>123の場合は、1なので、==をandに代えればできますが、他の数の場合
まずいです。
perl -e '$var=1; $var1=1; $var2=2; print "Ok!\n" if ($var and $var1 and $var2 and 2);'
これでもOk!になってしまいます。
0126123=125
04/08/30 17:44ID:???($var == 1 and $var1 == 1 and $var2 == 1)
もっと簡単な方法がないかと思ったものですから。
24ケースくらいあるんで書くのたいへん(TT)
0127nobodyさん
04/08/30 17:52ID:???my @var1 = (3, 3, 3, 3, 3, 3);
my %tmp = (); @tmp{@var1} = ();
print "var1 ", 1 == keys %tmp ? 'ok.' : 'no.', "\n";
my @var2 = (2, 2, 2, 2, 4, 2);
%tmp = (); @tmp{@var2} = ();
print "var2 ", 1 == keys %tmp ? 'ok.' : 'no.', "\n";
0129nobodyさん
04/08/30 17:56ID:???0131nobodyさん
04/08/30 18:47ID:???0132nobodyさん
04/08/30 19:53ID:???比較では不確定なモノを左に書くのが一般的。
これを逆に書くと何となく気持ちが悪い。
それを何とも感じないヤシはセンスが悪い。
0133nobodyさん
04/08/30 20:15ID:???もしバカがその人だったらぶん殴ってやる
0134nobodyさん
04/08/30 20:58ID:???0135123=125
04/08/30 21:04ID:???高度な技を伝授いただきありがとうございます。
@tmp{@var1} = ();
というところですが、ハッシュの配列ということでしょうか。
これは、らくだ本にも出ていますでしょうか。今手元にない
のですが。
0136nobodyさん
04/08/30 21:07ID:???0138nobodyさん
04/08/30 21:23ID:???http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perldata.html
0139nobodyさん
04/08/30 21:33ID:c+ZgByNiどうやればよいでしょうか。
0140nobodyさん
04/08/30 21:44ID:???その言い訳は何年も前に死滅したはずだが?
Found = in conditional, should be == at -e line 1.
頭が化石になってますよ。
0141nobodyさん
04/08/30 23:29ID:WEq7wEdzfor(0..10) {
・・・・・
}
}
ネストさせると、最初のfor文は$_ですが、中のfor文は何になるのですか?
0145nobodyさん
04/08/30 23:59ID:???変な質問ですみません。
>>143
ネストしてても一緒なんですか。
for(0..10) {
for(0..10) {
$data[$_][$__] = ・・・
・・・・・
}
}
だったらいいなと勝手に思ってました。
そうすると
for(0..10) {
for($i=0; $i<10; $i++) {
$data[$_][$i] = ・・・
・・・・・
}
}
とすべきなんですね。
0146nobodyさん
04/08/31 00:56ID:???for(0..10) {
for my $i (0..10) {
$data[$_][$i] = ・・・
・・・・・
}
}
0147nobodyさん
04/08/31 04:35ID:nQH60qUMwinxpにversion 5.005_03 built for MSWin32-x86-objectですが、思ったとおりにtruncateが動作しません。
open(FILE,'>aaa.txt');
print FILE "aaaaaaaa";
seek(FILE,0,0);
truncate(FILE,0);
print FILE "bbbb";
close(FILE);
これは、思ったとおりに動きます。aaa.txtは「bbbb[eof]」の4バイトになります。
$aaa='FILE';
open($aaa,'>aaa.txt');
print $aaa "aaaaaaaa";
seek($aaa,0,0);
truncate($aaa,0);
print $aaa "bbbb";
close($aaa);
これは、なぜか「bbbbaaaa[eof]」の8バイトになります。
seekは正しく機能して、truncateは機能していないからこの結果だと思うのですが、なぜ機能しないのでしょうか。
上の例を見ても、truncate機能自体はあると思うのですが・・・
0149nobodyさん
04/08/31 06:56ID:???0152nobodyさん
04/09/01 00:24ID:IFM26Jlfダウンロードというボタンをおしたら、CSVがダウンロードできる仕組みにしたいです、
0155nobodyさん
04/09/01 01:15ID:IFM26Jlfだれか教えてください。
ダウンロードというボタンをおしたら、CSVがダウンロードできる仕組みにしたいです。
が正解でした。といううことでおしえてください
0156nobodyさん
04/09/01 01:23ID:???教えてやろう。
PerlもCGIも使わなくてもできる。
よって板違い。
0157nobodyさん
04/09/01 01:47ID:IFM26Jlf0158Pearl
04/09/01 01:56ID:???...
END
と終端文字列を記述すると何も表示されないのに、
print "...";
print <<"END";
...
END
とすると表示されます。(print"...";の内容は表示されません)
これは何故なんでしょうか??
初心者ですいません…。
0159nobodyさん
04/09/01 02:16ID:???0160nobodyさん
04/09/01 12:01ID:VNRqZmighashでの実装、use fieldsでの実装
どちらがいいんでしょうか?
fieldsのが便利だと思うんですが、
内部でpseudo-hashを使ってる?らしく
pseudo-hashは今後推奨されなくなるようで
その辺り困ってます。
--------------------------------------
sub new {
my( $class, $name, $height ) = @_;
my $this = {
'name' => $name,
'height' => $height
};
bless $this, $class;
}
--------------------------------------
use fields qw( name height );
0161nobodyさん
04/09/01 12:17ID:???5.9.0以降ではpseudo-hash使わない実装に変更されたので
普通に使う分には問題ないんじゃなかったっけ。内部の
phash直接触るような行儀悪いプログラム書いてりゃ別だけど。
0162nobodyさん
04/09/01 12:33ID:VNRqZmigありがとうございます!
なるほど、確かに、phashを直接使うなみたいな事は書いてありました。
perl6になったらこの辺も変わりそう?ですし、
perl5では、これでいいってことで!
0163nobodyさん
04/09/01 18:16ID:GIk9V8QY日本語を使う時には特別な処理が必要なのですね。
今いろいろなサイト見てますが、皆さんのオススメの解説サイトがありましたら教えてください。
おながいしますm(_ _)m
0164nobodyさん
04/09/01 18:28ID:???メール送信の基本はperlに限ったことではないが
0166163
04/09/01 19:59ID:GIk9V8QY件名の分だけ他とは違うエンコードをしないといけないという意味です。
>>165
そうなのです。あまりいいところが見つからないのです。
実際のサンプルソースとかを載せながら解説してるサイトがあるといいなと思ったのですが;
0167nobodyさん
04/09/01 21:10ID:???0168nobodyさん
04/09/01 21:49ID:Fq5X9xKH上記のコードでリダイレクトさせる前に
htmlタグを読み込ませたいと思います。
<IMG SRC="http://www.hogehoge/test.cgi" width=1 height=1>
例えば上記のようなタグを読み込ませたい場合、
どのようにコードすればいいのでしょうか?
おながいします
0169nobodyさん
04/09/01 22:00ID:???お勧めサイトは(・∀・)ココダ!!
ttp://www.ietf.org/rfc/rfc2047.txt
>>168
うーん。
> width=1 height=1
リダイレクトした「数」をカウントできればいいというわけではないの?
0170nobodyさん
04/09/01 22:06ID:3SqQ1yBxprint "Location: (p)http://www.yahoo.co.jp/\n\n";
0171>>163
04/09/01 22:26ID:5tu92ZqP$subj = MIME::Words::encode_mimeword($subj, 'B', 'iso-2022-jp');
0173nobodyさん
04/09/01 22:39ID:???0174168
04/09/01 22:51ID:Fq5X9xKHレスありがとうございます。
そうですね、数をカウントできればいいというわけではないです。
$hoge = file( "http://www.hogehoge/test.cgi" );
これについてなんですが、
http://www.hogehoge/test.cgi の部分に変数を用いたい場合、
どんな感じになるでしょうか?初歩的な質問すいません。
http://$variable.com/test.cgi のようなURLにしたいのですが。
$hoge = file( "http://$variable.com/test.cgi" );
で変数として扱われるんでしょうか?
0175163
04/09/02 01:14ID:hfUgeMHv英語よめません;
>>171>>173
>$subj = MIME::Words::encode_mimeword($subj, 'B', 'iso-2022-jp');
これって5.8でないと駄目なんですか?使用サーバのperlは5.6ですが。
後、このモジュール?ライブラリ?ってRFC2047の
1.encoded-word は 75バイト以内でなければならない.
2.encoded-word を含む行は 76バイト以内でなければならない.
をクリアしてないですよね?PERLメモ読んでて、とりあえずBASE64エンコードは
なんかのモジュールでやるとしても1と2をどうしようかと迷ってます。
みなさんはちゃんと1と2に対応したサブルーチン等を作ったりしてるんでしょうか?
0178163
04/09/02 01:50ID:hfUgeMHv<input type="text" name="subject">
<textarea name="body"></textarea>
use MIME::Base64;
require "jcode.pl";
受け取ったフォームデータをデコード+JIS変換して%formを作成。(コード省略)
$encode_word = encode_base64($form{subject});
open MAIL,"|sendmail -t";
print MAIL<<END;
From: from@from.com
To: $form{to}
Cc:
Bcc:
Subject: =?ISO-2022-JP?B?$encode_word?=
$form{body}
END
これでは
1.encoded-word は 75バイト以内でなければならない.
2.encoded-word を含む行は 76バイト以内でなければならない.
をクリアできないですので。
0179>>163
04/09/02 02:09ID:LLw2NK0rバージョンやらモジュール云々じゃなくて、自分で制御すればいいだけでは?
ttp://www.hippo2000.info/perl/myfull.htm
0180163
04/09/02 02:14ID:hfUgeMHvはい。エンコードは別にたいした問題はないのです。
1.encoded-word は 75バイト以内でなければならない.
2.encoded-word を含む行は 76バイト以内でなければならない.
3.encoded-word はそれぞれ独立してデコード可能でなければならない.
4.encoded-text をデコードした文字列の文字コードは,最後に ASCII が指定された状態でなければならない.
5.encoded-word が現れる出現位置に関する決まり.
Subject や Comment のヘッダフィールドなどの, 'text' 内に出現.
"(" と ")" で区切られた 'comment' 内に出現.
From や To,CC ヘッダなどで,'phrase' 内に出現.
'addr-spec' 内で出現してはならない.
'quoted-string' 内で出現してはならない.などなど.
6.隣り合う encoded-word の間の 'linear-white-space' は無視する.
これらをクリアするのに皆さんは自分でエンコード前の準備用としてのルーチンを
自作してるんでしょうか?というのが>>175での質問です。
0181↑
04/09/02 02:30ID:???ttp://www.futomi.com/subroutine/encodesubject.html
0182163
04/09/02 02:40ID:hfUgeMHv>このサブルーチンは、RFC2047に完全には準拠していません。RFC2047では、ASCII文字列は、エンコードしないことを推奨していますが、このスクリプトでは、簡略化するために、すべてをエンコードしています。
紹介のサイトでは上記以外の違反はしてないみたいですが
企業でのメーラーとして使う場合はどの程度準拠すればいいのでしょうか?
ところで>>181さんは>>180の1〜6をどこまで守ってsendmailを利用されてますか?
一般的なレベルが知りたくなってきました。
0183nobodyさん
04/09/02 03:27ID:???おまいperlメモ読んでるなら、そこにあるソースをそのままもらえばいいのに。
あれならほぼokだろ。まあちょっと長いけどな。>>181のサイトは俺も見たが
asciiもエンコードしちゃう点を除けばかなりいい。jcode.plさえあれば誰でも
できるってのが手軽だしな。
そもそもPERLメモの方はsubject以外でも使えるし、デコードまでやれるルーチイだから
比べてもしょうがないな。ちなみに俺はフォームメールなど作ったことなし!
0185nobodyさん
04/09/02 11:21ID:3eXmd8V2$logfile = "./sizecount.dat";
$count = -1;
$count += (-s "$logfile");
open(OUT,">>$logfile");
print OUT "\n";
close(OUT);
print "Content-type: text/html\n\n";
print "countdate=$count\n";
参考書通りに作ったカウンターなんですけど
アップロードして動作確認したら正常に動いたので
flashMX2004でダイナミックテキスト、変数dispcountに
表示させたいんですけど、出来ません。
チェック用の一応変数checkにはloadcompleteと表示されました。
アクションスクリプト
System.useCodepage = true;
CGIfile = "sizeount.cgi";
myLoadVars = new LoadVars();
myLoadVars.onLoad = function(){
dispcount = myLoadVars.countdate;
check = "loadcomplete";
}
myLoadVars.load(CGIfile);
0186185
04/09/02 11:25ID:3eXmd8V2CGIの下から2行目はprint "Content-type: text/plain\n\n";
に変更してからフラッシュでやったんですけどなぜか表示されません、、、
これまで変数を受け取るだけや送るだけのサンプルは参考書通り出来てたのですが
お願いします。
0187185
04/09/02 11:31ID:3eXmd8V2ブラウザのキャッシュ関係ではありません。
お願いします。
0188185
04/09/02 11:35ID:3eXmd8V2ダイナミックテキスト,変数dispcountにはundefineと表示されます。
お願いします。
0189nobodyさん
04/09/02 11:38ID:???おそらく Flash の方に何らかの問題があると思われるが、
残念ながら Flash についてはこのスレで扱う範囲ではない。
0191nobodyさん
04/09/02 14:52ID:???俺は1〜6全部クリアしたライブラリ作ったが、たいていはそこまで必要ないので
作る奴はそういないだろうな。特に何が問題なのかも分からんような奴しか集まらん
このスレには。
ちなみに1〜6を完全に満たしたままだと、そうでないアホなエンジンが5を
無視してエンコードしたものを戻せないので、X-Mailerが自身ならstrictモード、
他ならlooseモードで動くようにしてる。
商用なので公開はせんが。
0192nobodyさん
04/09/02 18:06ID:LZDH898f0193nobodyさん
04/09/02 22:18ID:0Sj0dISTShiftJISのデータをDBから取得して、そのデータを使って
UTF-8のXMLファイルを作成したいのですが、うまくできません。
いろんなサイトを見てみましたが、うまくできないので
方法をご存知な方がいましたら、教えてください。
0194nobodyさん
04/09/02 22:38ID:???0195nobodyさん
04/09/02 23:59ID:0Sj0dISTDBからできないのはなぜでしょうか?
use Encode;
my $a = "あああ";
Encode::from_to($a, "shiftjis","utf8");
$xml =<<"EOF";
<?xml version="1.0" encoding="UTF-8" ?>
<test>$a</test>
EOF
print $xml;
0196nobodyさん
04/09/03 02:42ID:d4bnE4Tfから、中央値、最頻値を求めるには、どうすればいいですか?
モジュールは見つかったのですが、レンタルサーバーなので使えません。
誰かわかる人いたら教えてください。
よろしくお願いします。
0199nobodyさん
04/09/03 09:07ID:???@array = (1,5,8,6,2,1,3,8,6,4); #任意の数字
# 中央値
$#array % 2 ? $m=($#array+1)/2 : $m=$#array/2;
$median=(sort @array)[$m];
print "中央値は、$median。\n";
# 最頻値
for(@array){
$hindo{$_}++;
}
foreach $key (keys %hindo){
$max=$hindo{$key} if $hindo{$key} >= $max;
}
foreach $key (keys %hindo){
push(@max, $key) if $hindo{$key} == $max;
}
print "最頻値は、@max。\n";
0201196
04/09/03 11:54ID:???ありがとうございました!
やっぱり結構難しいプログラムになるんですね。
とても自分のプログラミングテクニックじゃできませんでした・・・
0202nobodyさん
04/09/03 13:23ID:???0203nobodyさん
04/09/03 13:55ID:???0204nobodyさん
04/09/03 22:27ID:qXHB0Gmyトカゲのアイコンがポコチンに見えた
0205>>163
04/09/03 22:51ID:???よくわからんが、選択肢は3つってとこか
1. このまま放置(案外これかもな)
2. JISじゃなくてUnicodeにしてMIME-Headerエンコする(作り込みなしで完璧)
3. 頑張ってJISと2047に固執する(作ったらcpanにあげてくれw)
> $header = encode('MIME-Header', $utf8);
0206174
04/09/04 01:17ID:jFFI5mOb無理でございました
0208nobodyさん
04/09/04 11:47ID:zUjRJg63http://news.fs.biglobe.ne.jp/news/photo/
にある
映画「釣りバカ日誌」の歴代のヒロイン役で誰が一番好き?
という投票結果がエラーになったり投票総数が0になったりします。
ハングル板ではビグロブによる結果改竄じゃねーかって祭りになってるので
すが、本当でしょうか?
教えてエロい人!
0210nobodyさん
04/09/04 11:55ID:zUjRJg63すいませんまちがいです
http://news.fs.biglobe.ne.jp/special/sanmenkiji.html
の
最近人気急上昇の韓国俳優「四天王」で誰が一番かっこいい?
の投票でした・・・
0211nobodyさん
04/09/04 12:22ID:???ま、スレ違い。
0212nobodyさん
04/09/04 13:23ID:???0214nobodyさん
04/09/04 15:42ID:llgg8ga30215nobodyさん
04/09/04 16:07ID:???俺が使っている
カウンターは
1日1000以上回ることが保証されている。
アンケートは
人がいなくてもリロードするだけで増えていく。
チャットは
必ず知らない人がいる。
プログラムは作られたとおりにしか動かないのです。
0216nobodyさん
04/09/04 16:26ID:L+DB05Rw$str =~ s/\r\n|\r/\n/g;
でいいっけ?なんか自分が書いた以前のコードに
$str =~ s/\n\r|\r/\n/g;
っていう逆になってるのがあって色々調べたら、\r\nの方が圧倒的に多いけどたまに
\n\rって書いてるコードもあった・・・・・
\r\n || \x0D\x0A
で正規表現するのが正解だよね?
0217nobodyさん
04/09/04 16:37ID:???0219nobodyさん
04/09/04 17:34ID:uW2eM/jVFreeBSD5.2.1 perl5.6.1
でperlスクリプトを書いています。
ファイルにある$$に囲まれた文字列をキーにして
ハッシュから値を取り出して出力しようとしていますが、
うまくいきません。
単純な置換ならうまくいくのですが、どうすればそのようなことが
可能なのでしょうか?
うまくいかないコード↓
while(<FILE>){
s/\$\$(.+)\$\$/$hash{\1}/g;
print $_;
}
目的の出力↓
hash("key1","val1","key2","val2")
FILE
文字列$$key1$$文字列
文字列$$key2$$文字列
出力結果
val1
val2
0220nobodyさん
04/09/04 17:41ID:???0221174
04/09/04 17:47ID:jFFI5mObmetaをどのように使うか分からないんです涙
metaにする利点はあるのでしょうか?
0222nobodyさん
04/09/04 19:30ID:???http://tohoho.wakusei.ne.jp/html/meta.htm
■ 別ページへの自動ジャンプ10秒後にURL=...で指定したURLにジャンプします。ホームページの移動の際に用いている例があります。IE3.0、Netscape Navigator 2.0 でサポートされています。
<meta http-equiv="Refresh" content="10;URL=http://xyz.com/">
0223174
04/09/04 19:49ID:jFFI5mOb申し訳ないですが、
htmlでなら分かりますが、perlでは分かりません。
0224nobodyさん
04/09/04 20:10ID:???0225nobodyさん
04/09/04 20:18ID:???オリジナルのエラーページを作成しています。
エラーの元になっているファイル/フォルダのURLをオリジナルのエラーページに表示させようと
http://<!--#echo var="SERVER_NAME" --><!--#echo var="REQUEST_URI" -->
というコマンドと環境変数を使っていますが、
オリジナルのエラーページのURLが表示されます
ステップサーバー(http://stepserver.jp)というレンタルサーバーを利用しており、
そのサポートに問合せましたが、上記の記述で問題ない、との回答でした。
何かアドバイス・ヒントを頂けないでしょうか?
0226nobodyさん
04/09/04 20:25ID:???申し訳ないですが、なにが分からないのか分かりません。
>>225
申し訳ないですが、それのどこがperlに関する質問なのか分かりません。
0227nobodyさん
04/09/04 20:43ID:???CGI: Common Gateway Interface part 11
http://pc5.2ch.net/test/read.cgi/php/1055597189/956
0228nobodyさん
04/09/04 20:55ID:DfAuufFlどうやればいいのでしょうか?
0229174
04/09/04 20:57ID:jFFI5mOb内容なんだけど、アフォですか?
meta分かったらそもそもこの質問してねーだろ??
>>224
おまえが(以下略
0230nobodyさん
04/09/04 21:14ID:???ttp://homepage3.nifty.com/hippo2000/perltips/perlgrph.htm
0233nobodyさん
04/09/04 21:43ID:???0234nobodyさん
04/09/04 21:43ID:???GifGraphの解説がありましたが、最初の方に、
「CPANには他にもChart-PNGgraph、GDgraphといったものもあり、
どれが今後も残っていくのかよくわからない状態です。(2000/1/5)」
と書かれています。いったいどのモジュールが現在主流なので
しょうか。質問ばかり申し訳ありません。
0237nobodyさん
04/09/04 23:09ID:mKo8NLNsそのソフトが終わらないと、そのコンソールがperlに乗っ取られた
まま使えなくなっちゃうんですが、これは仕方ないのでしょうか。
exit;入れてもダメですた。
system("Desktopmem.exe");
exit;
0239nobodyさん
04/09/04 23:51ID:DfAuufFlありがとうございます
>>234 >>238
http://www.hippo2000.info/cgi-bin/KbWiki/KbWiki.pl?cmd=disp&page=%B8%C5%A4%AF%A4%CA%A4%C3%A4%BF%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB
GDGraphってのに統合されたっぽいです
0241nobodyさん
04/09/05 00:05ID:???perlで変更して保存、それをdesktopmemoに読み込ませて起動と
いうことをやりたいので(スタートアップに登録)、すると、
バッチファイルかシェルスクリプトしかないですかね。
0243nobodyさん
04/09/05 00:13ID:???ありがとうございます。
今は、GDGraphなんですね。実は、オライリーの「perlによるwebプログラミング」
とかいう本、かなり前に買ってあって、あれには、GifGraph、Gimpが中心に説明
してあったので、うーむ、ちょっと隔世の感。やってないのがいけないんだけど。
0244210
04/09/05 00:15ID:7pvSYkfOスレ違いなのに回答ありがとうございます。
ただ、結局何をおっしゃりたいのか今ひとつよくわからなかったんですが
プログラムの想定外の事態が起こったということでしょうか?
0246nobodyさん
04/09/05 06:56ID:???0247nobodyさん
04/09/05 10:26ID:gdlM8Pd7どのように実現したら良いか方法をお教えください。
例えば、変数$textに下記のデータが入っているとして
--------------------------
> 引用元のテキスト1
> 引用元のテキスト2
> 引用元のテキスト3
返信テキスト
--------------------------
1桁目に半角の'>'があった行を下記のようなデータに置き換えたいと
考えております。
--------------------------
<span class="quoted">> 引用元のテキスト1
> 引用元のテキスト2
> 引用元のテキスト3</span>
返信テキスト
--------------------------
また、スレ違いの質問でしたら誘導していただけると嬉しいです。
0249nobodyさん
04/09/05 11:49ID:???俺なら一行ごとに
<span class="quoted">> 引用元のテキスト1</span>
ってやってから
</span><BR>\n<span class="quoted">
だのを削除するかもなあ。
正規表現ひとつだとややこしくなりそう。
0251nobodyさん
04/09/05 14:09ID:???$text =~ s|(^>.*(?:\n^>.*)*)|<span class="quoted">$1</span>|gm;
0252247
04/09/05 19:15ID:???おお、>>247の条件はバッチリでした。
ただ引用ブロックが複数あると、2つ目以降に適用されないので、
もう1条件つけ加えることで、完全に期待通りの動作ができました。
>>248 >>249 >>251さん、とても助かりました。ありがとうございます。
0253nobodyさん
04/09/06 00:59ID:WMpYnmeW今VIPで伝説の機能を検討中ですが、、、よいアイデアが出ません。(andスキル不足)
良いアイデアがあってかつスクリプト提供していただけるなら非常に嬉しいのですが・・・
■ VIP に伝説の機能をつけよう。。。
http://ex7.2ch.net/test/read.cgi/news4vip/1094337276/
■ VIP に伝説の機能をつけよう。。。2
http://ex7.2ch.net/test/read.cgi/news4vip/1094394603/
■ VIP に伝説の機能をつけよう。。。3
http://ex7.2ch.net/test/read.cgi/news4vip/1094396742/
0254nobodyさん
04/09/06 01:05ID:???0257nobodyさん
04/09/06 16:26ID:???何かプレゼントするとか。●とか
0258nobodyさん
04/09/06 21:56ID:???0259nobodyさん
04/09/06 22:24ID:Oq1gFU4V2:
3: for my $s (1..10)
4: {
5: print $s."\n";
6: }
これをやると、3行目でエラーになります。
Missing $ on loop variable at C:\hoge\test.pl line 3.
2: my $s
3: for $s (1..10)
とすれば正常に動くのですが、上のようにforの後ろでmyを使用しているサンプルを良く見るので、原因を知りたいです。
OSはWinXPです。お願いします。
0260nobodyさん
04/09/06 22:32ID:???俺んとこの ActivePerl 5.6.0 build623 (我ながらクソ古いバージョンだな) では
for my $s (1..10) でも問題なく動くんだが
君んとこの perl はどのバージョンのを使ってるんだ?
0261nobodyさん
04/09/06 22:49ID:xItUojLf0262253
04/09/06 23:31ID:anPS9KLr・1001の文章変更
・おみくじ機能:メール欄に!omikuji
・Load Average表示機能:メール欄に!uptime
・レベル表示:メール欄に!power
・名前のカラー機能:名前欄に@XXXXXX@(XXXXXXは16進カラーコード)
・スレ立てた1が名無しの名前を決められる機能
(派生で強制フシアナスレ、強制名無しスレ、名無しフシアナスレ、ID非表示スレなどが可能)
・IDがひらがな
・ひらがなトリップ
・本文で<tt><pre>タグ使用可能(!tt, !pre使用で)
詳細はまとめサイトで
http://www3.tokai.or.jp/ss295/vip/
便利な機能等ができれば他板にも導入されるかも。
公開テストみたいな感じになってます。
0264nobodyさん
04/09/06 23:34ID:???↑は新機能と言えるのだろうか。
0266259
04/09/06 23:44ID:Oq1gFU4V5.003_07
でした。今から新しいのに変えてみます。
0267259
04/09/06 23:57ID:Oq1gFU4V動きました!有難うございます。
ちなみにバージョンは5.8.4が最新だったのでそっちを入れました。
0269259
04/09/07 09:16ID:vClBsqv3Perlのバージョンによる機能の差分を紹介しているページを知りたいのですが、どなたかご存じないでしょうか?
サーバのPerlがv5.00502なので、色々とエラーが出て困ってます。
0271nobodyさん
04/09/07 14:04ID:???http://perldoc.com/perl5.8.4/pod/perl.html
perldelta
0272nobodyさん
04/09/07 18:54ID:???perlの処理で、”Enterキーを押す”っていう操作は
perlでは、どう記述するのでしょうか?
ご存知の方是非教えて頂きたいのですが?
0273nobodyさん
04/09/07 19:17ID:???0274nobodyさん
04/09/07 19:18ID:???偶然似たような質問がありましたのでご参考にされてはいかがでしょうか
ttp://pc5.2ch.net/test/read.cgi/tech/1090889189/961-963
0275nobodyさん
04/09/07 19:19ID:???質問です。
1分も経たないうちにCGIとかPerlとか超初心者なんだけどスレとマルチポストしちゃうのは
どういう狙いがあるのでしょうか?
0276nobodyさん
04/09/07 19:24ID:???マルチ杉
http://pc5.2ch.net/test/read.cgi/tech/1037383722/263
0277nobodyさん
04/09/07 19:44ID:MmA4CFyc>>642
こ こ は 質 問 ス レ で は あ り ま せ ん
質問です。
1分も経たないうちにPerlコーディングスレとマルチポストしちゃうのは
どういう狙いがあるのでしょうか?
0278nobodyさん
04/09/07 20:23ID:???おながします
0279nobodyさん
04/09/07 20:27ID:KfcdHICt0280nobodyさん
04/09/07 21:52ID:???↑ここまで独り言↑
↓ここから質問↓
0281nobodyさん
04/09/07 22:54ID:???PHP:
$str = "3SHRUNYAXA";
print strtr(\$str,"AIUEO", "aiueo"), " ", $str;
Perl:
$str = "3SHRUNYAXA";
print $str =~ tr/AIUEO/aiueo/ . " " . $str;
どちらも3 3SHRuNYaXaと表示。
0282259
04/09/08 00:54ID:mcKNZ5q4有難うございます。
って、全部英語なんですね・・・ 読めません(w;
0283nobodyさん
04/09/08 01:43ID:???0285nobodyさん
04/09/08 08:57ID:???0286nobodyさん
04/09/08 09:00ID:???0289nobodyさん
04/09/08 21:38ID:bxg/BX6laaa@hotmail.com
bbb@yahoo.co.jp
・・・
などのメールアドレスを読み込ませて、
一致しなければ、”未登録です”と表示させたいのですが、
ファイルに登録してあるメールアドレスも未登録だと表示されてしまいます。
もう半日以上いろんなサイトを見ながら試行錯誤していますが、
一向に解りませんでした。
どなたかご教授ください。
#メールアドレスの登録チェック
$a=0;
open(IN,"$mailfile") || &error("Open Error: $mailfile");
while (<IN>) {
($eml) = split(/\n/);
if ($in{'eml1'} ne $eml) { $a++; last; }
}
close(IN);
if ($a) {
&error("$in{'eml1'}は未登録です。");
0291289
04/09/08 21:53ID:bxg/BX6l素早いレスありがとうございます!
長時間悩んでいた自分が馬鹿でした・・・orz
0292nobodyさん
04/09/09 00:28ID:???0293nobodyさん
04/09/09 00:29ID:???0294nobodyさん
04/09/09 00:37ID:???引数が空なのにわざわざ()を付ける意味はあるんですか?
()は書いても書かなくても同じですか?
ということです。
0295nobodyさん
04/09/09 00:51ID:???0296nobodyさん
04/09/09 00:53ID:???納得しました。
0297nobodyさん
04/09/09 02:56ID:???挙動も違うがな。
http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlsub.html
0298nobodyさん
04/09/09 08:53ID:???&foo; # &foo(@_) と同じ
よって、&foo ≠ &foo()
0299nobodyさん
04/09/09 17:36ID:wkS7yjyl$tim = time;
で$timに「1094716247」といった10桁の数字が入りますが
この数字の内訳(? というかしくみを教えて欲しい・・・
やりたいことは
$dat = date('Y.m.d H:i', time());
で$datに入る「2002.09.09 15:00」といった文字列を
上の10桁の数字に変換することなのですが。
おねがいします。
0302nobodyさん
04/09/09 21:24ID:???sub timelocal {
my ($sec,$min,$hour,$day,$mon,$year) = @_;
my @month = (31,28,31,30,31,30,31,31,30,31,30,31);
$year += int($mon/12); $mon = $mon%12; $hour -= (localtime(0))[2];
my $days = -719162;
$year += 1899; $days += $year*365 + int($year/4) - int($year/100) + int($year/400);
++$year; if ($mon > 1 && (!($year%400) || (!($year%4) && ($year%100)))) {++$days}
while (--$mon >= 0) {$days += $month[$mon]}
$days += $day-1;
return((($days*24+$hour)*60+$min)*60+$sec);
}
0305nobodyさん
04/09/09 22:16ID:???0308弱杉
04/09/10 03:32ID:+ZeQb9+rperl (ver.5.00503)で、特定デレクトリを丸ごと圧縮(zipかlzhが希望)する必要が在り調べたのですが、
Archive::zipというモジュールが必要らしいと分りました。
しかし、このスクリプトの置き場所はレンタルサーバ(ア_ル)で、モジュールの追加インストールが出来ません。
zipもしくはlzh圧縮が可能なライブラリって無いでしょうか?
ご存知の方がいらっしゃったら教えていただけると大変、大変助かります。
どうぞよろしくお願いします。
(この質問はモジュール板の方が適切なのでしょうか? それさえも分らんのデス...)
0309nobodyさん
04/09/10 04:27ID:???0310弱杉
04/09/10 04:49ID:+ZeQb9+rア_ルから、ちょっと前にもらったモジュール一覧にも入ってなかったでんす。
私の勘違いでしょうか。。。
0311nobodyさん
04/09/10 05:24ID:???ActivePerl Build 810 (5.8.4 相当) なら入っているが、Build 522
(5.005_03 相当) には入っていないし、(素の) Perl ではどのヴァージョン
でも入っていない。ActivePerl 系でも lib/ の方ではなく site/lib/ の
方に入っているから標準モジュールでないと分かる。
http://perl.infoware.ne.jp/documents.html
>>310
Archive::Zip 自体は Pure Perl なモジュールだからコピーすればいいが、
中で非標準モジュール且つ要コンパイルの Compress::Zlib を使っている。
サーバに用意されていなければこれを Compress::Zlib::Perl に置き換え、
必要なモジュール一式を任意のディレクトリに置いて使えばいい。
もしくは、サーバに zip や lha がインストールされているなら system() で
呼ぶ方が楽だろう。
http://perldoc.com/perl5.8.4/pod/func/system.html
0315nobodyさん
04/09/10 13:50ID:???Time::ParseDate使えば一発だよ。
use Time::ParseDate;
print parsedate("2002.09.09 15:00");
0316弱杉
04/09/10 19:31:54ID:+ZeQb9+rお返事ありがとうございます&カメレスですんませんです。
Archive::Zipで必要とされているモジュールで、やはりCompress::Zlibのみありませんでした。
そこで、Compress::Zlib::perl ver.0.02 (不安なバージョンですが..)をCPANからDLしました。
でも、解凍するとMakefile.PLとかPerl.pmとかが入っていてそこでお手上げです...(レンタル鯖しかいじった事無い厨なので、Makeとか分らんのです)
Zip.pmとcompress_zip.pm(?) を置いて、Zip.pmからuseの代わりにrequireするだけとか勘違いしてました。
Compress::Zlib::perlはMake(?)しないとライブラリファイルにはならないのでしょうか?
また、鯖内のコマンド検索をしたら、gzipというのがは使えるみたいですが(pathは /usr/bin/gzip)、これは通信時の圧縮専用のものでアーカイブを作るのには使えないのでしょうか?
引き続きご指南いただければ幸いです。宜しくお願いします。
0317nobodyさん
04/09/10 20:20:41ID:???http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perlmod.html
http://www.linux.or.jp/JM/html/GNU_gzip/man1/gzip.1.html
ちなみに gzip は Windows や Mac で良く使われる ZIP (PKZIP)
とは別形式。圧縮のみを担当し、複数ファイルをまとめる
(アーカイヴ) 機能は無いので、tar と連携させる事が多い。
Perl と関係ないので詳しくは余所で尋ねて。
0318弱杉
04/09/10 20:46:34ID:+ZeQb9+rお返事ありがとうございます。gzipに関しては参考URLで理解出来ました。
もう一点の『perlでのzipアーカイブの作成方法』についても
余所で訪ねた方がよろしいでしょうか?(モジュール関連スレとかに行けばよろしいですか?)
いちいちつまらん質問ですみません。。。
0319nobodyさん
04/09/11 02:24:58ID:???http://pc5.2ch.net/test/read.cgi/php/997829243/
CGIに依存しないPerlの話題一般/Part2
http://pc5.2ch.net/test/read.cgi/php/1030548610/
0320弱杉
04/09/11 02:38:55ID:cyd1fAb1ご指南ありがとうございました。そちらの板にいってきます。
スレ汚し、大変失礼しました。
0321nobodyさん
04/09/11 05:03:25ID:???しかし、以下のソースだと何故かクッキーには書き込まれるのにフォームに既入力の状態になりません。
何がおかしいのか見ていただけないでしょうか?一つ目のソースはこれです。
$cookie_id = 'regist';
&get_cookie();
$name = $cookie{ 'name' };
print "<meta http-equiv='Content-Type' content='text/html; charset=Shift_JIS'>\n\n";
print <<"HTML_TAG";
<html><head></head><body>
<Form action="registration.cgi" method="POST">
<table width="600">
<tr><td><input type="text" name="name" size="20" value="$name"><input type="submit" name="regist" value="確認画面"></td></tr>
</table>
</FORM>
</body>
</html>
0322nobodyさん
04/09/11 05:03:54ID:???sub get_cookie {
my( $cookie_name, $value );
foreach ( split( /; /, $ENV{ 'HTTP_COOKIE' } ) ) {
( $cookie_name, $value ) = split( /=/ );
$cookies{ $cookie_name } = $value;
}
foreach ( split( /&/, $cookies{ $cookie_id } ) ) {
( $cookie_name, $value ) = split( /:/ );
$cookie{ &unescape( $cookie_name ) } = &unescape( $value );
}
}
sub unescape {
my( $data ) = @_;
$data =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1) )/ge;
return $data;
}
exit;
0323nobodyさん
04/09/11 05:04:18ID:???sub get_cookie {
my( $cookie_name, $value );
foreach ( split( /; /, $ENV{ 'HTTP_COOKIE' } ) ) {
( $cookie_name, $value ) = split( /=/ );
$cookies{ $cookie_name } = $value;
}
foreach ( split( /&/, $cookies{ $cookie_id } ) ) {
( $cookie_name, $value ) = split( /:/ );
$cookie{ &unescape( $cookie_name ) } = &unescape( $value );
}
}
sub unescape {
my( $data ) = @_;
$data =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1) )/ge;
return $data;
}
exit;
0324nobodyさん
04/09/11 05:05:28ID:???クッキーには確かに情報が入っているにもかかわらず、テキストボックスには何も表示されません…。
require "./sub_getparam.pl";# データ取得用サブルーチン
require 'jcode.pl';
$cookie_id = 'regist';
read( STDIN, $query, $ENV{ 'CONTENT_LENGTH' } );
&getparam( $query );
$name = $param{ 'name' };
$cookie{ 'name' } = $name;
&set_cookie();
print "<meta http-equiv='Content-Type' content='text/html; charset=Shift_JIS'>\n\n";
print <<"END";
<html><head></head><body>
<p><B><font color="red">内容を確認してください。</font></B></p>
<Form action="registration_complete.cgi" method="POST">
<table><tr><td>名前</td><td>$name</td></tr></table>
<input type="hidden" name="name" value="$name">
</form></BODY></HTML>
END
0325nobodyさん
04/09/11 05:06:02ID:???my( $new_cookie, $date );
@pairs = ();
foreach( sort keys %cookie ) {
push( @pairs, &escape( $_ ).":".&escape( $cookie{ $_ } ) );
}
$new_cookie = join( '&', @pairs );
$date = &gmt_date( time + 86400 * 120 );
if ( $new_cookie ne $cookies{ $cookie_id } ) {
print "Set-Cookie: $cookie_id=$new_cookie; expires=$date\n";
}
}
sub escape {
my( $data ) = @_;
$data =~ s/(\W)/sprintf( "%%%02X", unpack('C', $1 ) )/ge;
return $data;
}
sub gmt_date {
my( $data ) = @_;
( $sec, $min, $hour, $day, $mon, $year, $wday ) = gmtime( $data );
return sprintf( "%s, %02d %s %04d %02d:%02d:%02d GMT",
( Sun, Mon, Tue, Wed, Thu, Fri, Sat )[ $wday ], $day,
( Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec )[ $mon ],
$year + 1900, $hour, $min, $sec );
}
exit;
0326nobodyさん
04/09/11 05:07:00ID:???my( $new_cookie, $date );
@pairs = ();
foreach( sort keys %cookie ) {
push( @pairs, &escape( $_ ).":".&escape( $cookie{ $_ } ) );
}
$new_cookie = join( '&', @pairs );
$date = &gmt_date( time + 86400 * 120 );
if ( $new_cookie ne $cookies{ $cookie_id } ) {
print "Set-Cookie: $cookie_id=$new_cookie; expires=$date\n";
}
}
sub escape {
my( $data ) = @_;
$data =~ s/(\W)/sprintf( "%%%02X", unpack('C', $1 ) )/ge;
return $data;
}
sub gmt_date {
my( $data ) = @_;
( $sec, $min, $hour, $day, $mon, $year, $wday ) = gmtime( $data );
return sprintf( "%s, %02d %s %04d %02d:%02d:%02d GMT",
( Sun, Mon, Tue, Wed, Thu, Fri, Sat )[ $wday ], $day,
( Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec )[ $mon ],
$year + 1900, $hour, $min, $sec );
}
exit;
0328nobodyさん
04/09/11 05:24:21ID:???0329nobodyさん
04/09/11 05:45:52ID:???ソースを見ずにレス。
(´-`).。oO(見る気がおきねーよ)
「一つ前に戻ると」と書いてある。
つまりキャッシュされたページを見てると…
0330nobodyさん
04/09/11 09:03:38ID:???0331nobodyさん
04/09/11 09:30:58ID:???ソースみてないから推測だが
0332nobodyさん
04/09/11 10:37:18ID:???0333nobodyさん
04/09/11 11:28:31ID:???値を取り出して表示させるとか切り分けしてみ。
読む気にならんからこんなとこだな。
0334nobodyさん
04/09/11 19:54:24ID:3nx87n19以下の様なsprintfを含んだスクリプトが使用できずエラーと
なってしまいます。どなたか、Perlの環境は変えずに、代わり
となるスクリプトがあれば教えて頂けませんか?
&SUB(sprintf "%02", $a - 1);
sub SUB{
my $value = shift @_;
system "$SHELL_COMMAND $value";
}
0335nobodyさん
04/09/11 19:58:22ID:3nx87n19すいません。スクリプトが間違えていました。
&SUB(sprintf "%02d", $a - 1);
sub SUB{
my $value = shift @_;
system "$SHELL_COMMAND $value";
}
0336nobodyさん
04/09/11 20:06:17ID:???0337nobodyさん
04/09/11 20:41:24ID:3nx87n19何度もすいません。335のコメントが紛らわしかったので
再度書き込みました。
335で書いたスクリプトが正しいのですが、それでもエラーと
なっていますので、どなたか、代替のスクリプトがありましたら
教えて下さい。宜しくお願いします。
0338nobodyさん
04/09/11 20:45:06ID:???0340nobodyさん
04/09/11 22:07:01ID:???0342334
04/09/11 23:32:18ID:3nx87n19レスありがとうございました。
本日確認出来ない為、後日試してみます。
0347nobodyさん
04/09/12 16:17:53ID:???0350nobodyさん
04/09/12 18:47:25ID:???0351nobodyさん
04/09/12 18:51:08ID:???0352nobodyさん
04/09/12 22:28:31ID:???誤ればなんでもどうにかなると思ってるのか?
0354nobodyさん
04/09/13 01:06:09ID:???新しいものを上に書くには、書き込み時に、まずファイルの内容を変数にいれ、その書き込みの内容をファイルに上書きした後追加でそれ以前のを書くしか方法はないですか?
あと、こちらはブラウザから直読みじゃないのですが、ファイルの上から何行を読む、正規表現でマッチしたところだけを読むにはどうすればよいのでしょうか?
よろしくお願いしますm(_ _)m
0355nobodyさん
04/09/13 06:06:04ID:???↑のハイフンってハッシュのキーに使えますか?頭文字にはできないのは知ってますが、
2文字目以降にも使えないんですか?
0356nobodyさん
04/09/13 06:17:06ID:???考え方は一緒だが
open LOCK, '>' . $lock_file or die $!;
flock LOCK, 2;
open LOG, '<' . $log_file or die $!;
open TEMP, '>' . $tmp_file or die $!;
print TEMP $new_article;
print TEMP <LOG>;
close TEMP;
close LOG;
rename $tmp_file => $log_file or die $!;
close LOCK;
>>355
my %hash = ('-' => 'foo', -a => 'bar', '-a-' => 'baz');
print @hash{'-', '-a', '-a-'};
0357355
04/09/13 07:34:16ID:???あれ?使えた・・・・;
-が初めか最後の時にはクォートしなきゃいけなかったのか;
それが面倒であまり使われてないんですかね?それとも他にも何かの処理中に面倒なことが
起こる可能性があったりするんですか?
0358355
04/09/13 07:36:22ID:???0359nobodyさん
04/09/13 07:52:35ID:???0360nobodyさん
04/09/13 08:09:58ID:???文字列をクォートするのはどんな言語でも当たり前のことだろうに。
0361355
04/09/13 09:29:42ID:????
%form = ( a-a => 1 );
エラーになる。use strict環境下だからかもしれないけど。
>>360
通販サイトのCGIだから商品名、商品価格とか色々商品番号をキーとしたハッシュを作る時に
いちいちクォートを入れてると見づらいし、書きづらいorz
ハイフンなしでもいいがCSV形式に変換して落とす時にいちいちハイフンを追加するのもちょっと億劫orz
Perlって結構自由?ゆるい?からマルチバイトかメタ文字以外でクォートすることはないんだorz
だって面倒でしょ。JAVA畑の人は慣れてるかもしれないけどさ。
0362355
04/09/13 09:30:13ID:???の間違いね。
0363nobodyさん
04/09/13 09:33:33ID:aK+3swHZ「あなたのメアドは?」って聞かれたのですが、
これって何に使うのでしょうか?
0365nobodyさん
04/09/13 09:42:28ID:???>>364が言うように請求書が来るが、先払いも可能だよ。クレジット決済でやるのがまあ普通だね。
昔俺はメアドだけなら払わずに無視してもどこの誰だかわからないだろうと思っていたが、
IP+メアドで実は十分個人を特定できるようだ。(もちろん裁判所に申請して住所などの情報を調べる許可を得るみたいだが。)
0368nobodyさん
04/09/13 10:01:53ID:???バグレポートを送ったりそのバイナリをビルドしたPerl管理者に連絡を取りたかったりした時とか。
Perlが勝手にそのアドレスを使うことはない。(アプリが勝手に使うことはあるかもしれないが)
気になるならfoo@example.comにでもしておけ。
>>364-366 悪質な冗談はやめとけ
0369nobodyさん
04/09/13 11:45:33ID:???if ($key eq 'log'){
$val =~ s/\,//;
if ($val =~ m/[0-9,]{1,10}/){
$number = $val;
}
}
ではうまくいきません。どの辺がおかしいかご教授願います。
0371nobodyさん
04/09/13 12:28:08ID:???0372nobodyさん
04/09/13 13:00:27ID:???そこから123245と6789と4567を別々に取り出したいの?
それとも12324567894567て続けて?
0373nobodyさん
04/09/13 13:01:37ID:???my $val = "datadata1,234,567datadata....,456,789";
my @tmp = $val =~ /(\d{1,3}(?:,\d{3})*)/g;
foreach (@tmp){
$_ =~ s/,//g;
print "$_\n";
}
0374nobodyさん
04/09/13 13:02:42ID:???12345677 てカンマだけを抜かした形で取得したいす
0375nobodyさん
04/09/13 13:06:15ID:???>>370の言うとおり。
if ($key eq 'log'){
$val =~ s/,//g;
$number = $val;
}
0378nobodyさん
04/09/13 13:53:22ID:???0379nobodyさん
04/09/13 14:45:23ID:Dm3Qguqcが数値かどうかを判定するいい方法Plz。
0380nobodyさん
04/09/13 14:48:19ID:???0381379
04/09/13 14:56:19ID:Dm3Qguqcその意味を理解するのに手間取ってしまいました。
if($a =~ /^\d+$/){
#数値
}
ですね、ありがとうございました。
0386nobodyさん
04/09/13 15:43:56ID:???http://www.mamiyami.com/document/perl_cookbook_2nd_edition/0596003137_perlckbk2-chp-2-sect-1.html
0387nobodyさん
04/09/13 16:22:04ID:???foreach (@vals){
if($_ eq $_-0){
print "$_ = Number\n";
}
}
どう?
0388nobodyさん
04/09/13 16:42:01ID:???0390nobodyさん
04/09/13 16:51:18ID:???bare word として許されるのは [A-Za-z]\w* にマッチする文字列のみ。
これに加え単項演算子としての - を bare word の頭に付ける事ができる。
<q cite="http://perldoc.com/perl5.8.4/pod/perlop.html#Symbolic-Unary-Operators">
Otherwise, if the string starts with a plus or minus,
a string starting with the opposite sign is returned.
One effect of these rules is that -bareword is equivalent
to "-bareword".
</q>
=> 演算子は左辺の (- が頭に付くものも含めた) *bare word を*
クォートしてくれるが、何でもかんでも文字列リテラルにしてくれる
わけではない。
0391nobodyさん
04/09/13 17:02:59ID:???use warningsすると出る。
Argument "s51" isn't numeric in subtraction (-) at numberp.pl line 6.
Argument "51s" isn't numeric in subtraction (-) at numberp.pl line 6.
0393nobodyさん
04/09/13 17:34:07ID:nbuBgplMクッキーやファイルを使わないでする方法は無いですか?
0394nobodyさん
04/09/13 17:49:54ID:???スレ違い
http://pc5.2ch.net/test/read.cgi/php/1086715675/l50
0396nobodyさん
04/09/13 19:55:34ID:???0397nobodyさん
04/09/13 20:01:22ID:UGDBY8bjm/^[-+]?\d+(\.\d+)?$/
0398nobodyさん
04/09/13 20:17:50ID:???0399nobodyさん
04/09/13 21:08:13ID:ZFdPbvGg何十回も関数リファレンスや講座サイトを見比べても、どこが悪いのかがわかりません。
ちなみに、下記のコードの結果、$cs_xの値が-1になりました。$st_ffで出るパスは正しいです。
もしよろしければ教えて頂きたいなと思います。
sub st{
open(IN,"$st_ff") || &error("stファイルが見つかりません"); # $st_ff はstファイルの位置(相対パス)
@st_d = <IN>;
close(IN);
$i=0;
foreach (@st_d){
($name,$c_no,$hp,$lov,$his,$age) = split(/<>/);
$c_status[$i] = [$name,$c_no,$hp,$lov,$his,$age];
$i++;
}
$i--;
$cs_x = $i; # $cs_xは元データ(st)の行数を出す・チェック用
}
0400nobodyさん
04/09/13 21:13:27ID:???0401nobodyさん
04/09/13 21:17:01ID:???-1になってるならforeachが一度も処理されてないってことだろ。
foreach前に
print @st_d;
でも加えて確認してみ?
0402nobodyさん
04/09/13 21:39:15ID:???考えてみたらそうですね。
エラーメッセージが出ないので大丈夫と先入観を持ってました。(ちなみに、ファイル名を変えて、エラーが出るのは確認しました。)
ちなみに@st_dは無表示なので、1〜3行内に間違いがありそうです。
レベル低すぎる質問って自覚したので精進して出直して、ここにお世話にならないように頑張ります。
失礼しました。
0404nobodyさん
04/09/13 21:51:51ID:???本当にわかっていてこうしているのか甚だ疑問なんだが
0405nobodyさん
04/09/13 21:57:42ID:???いちいち$iとか使わないで、
push @c_status, ほげほげ
とやる方がらくちんだよ。最後の$cs_xも、@c_statusの
大きさで読み込んだ行数わかるから冗長。
0406nobodyさん
04/09/13 21:58:08ID:???改変前のコピーを取っておいたフォルダで試してました。
本気で申し訳ありません。
>>404
それは後のサブルーチンで、$c_status[$i][$j]みたいなかんじで使おうと思って。
何か他にいい方法があれば教えていただけますか?
0408nobodyさん
04/09/14 05:51:54ID:???英文と違ってスペースで区切られていないので、どこからどこまでが
単語か判断できないのですが…
0409学生のときは語学屋でした
04/09/14 06:17:42ID:???「あの犬ちゃうちゃうちゃう?」
「ちゃうちゃうちゃう、ちゃうちゃうちゃう!」
「えー、ちゃうちゃうちゃう?ちゃうちゃうちゃうん?」
「ちゃうちゃうちゃうんって、ちゃうちゃうちゃうんとちゃうん?」
「ちゃうちゃうちゃうんとちゃうんって、ちゃうちゃうちゃうんな?」
分節してみてください。
人間が「どう分節するか」を定義できなければ、プログラムは分節できませんよ。
便利なモジュール等があるかどうかはともかくとして。
0410nobodyさん
04/09/14 06:20:04ID:???ググってすぐ出たのはこのあたり。
ttp://kakasi.namazu.org/
ttp://chasen.naist.jp/hiki/ChaSen/
もしくは...「漢字を含む2文字以上」の全てのパターンを網羅するとか。
ハッシュだとファイルサイズの十数倍食いそう。
0411nobodyさん
04/09/14 06:58:37ID:???0413nobodyさん
04/09/14 15:39:19ID:NAYEHf5jtest.cgiというCGIで、?mode=viewの時viewのサブルーチンに
切り替えたいのですが、リンクを押してもindexの部分が表示されます
---
$mode = $in{'mode'};
if ($mode eq "view") { &view; }
&index;
sub index {
print "<a href=\"test.cgi?mode=view\">テスト</a>\n";
}
sub view {
print "this is a view\n";
}
---
すいませんがお願いします
0416413
04/09/14 15:57:35ID:NAYEHf5jelseif ($mode eq "") { &index; }
としても、サブルーチンの最後にexit;つけても駄目でした。
前者ではindexも表示されなくなってしまいました。
0417nobodyさん
04/09/14 16:02:26ID:???0419413
04/09/14 16:09:01ID:NAYEHf5j見ればいい場所を教えてください
0420nobodyさん
04/09/14 16:24:05ID:???indexだけで「Content-Type:」〜「</HTML>」までprintしてるんでしょ?
ヘッダーとかを別のサブルーチンにしてないならindex内で分岐しなきゃ。
0421nobodyさん
04/09/14 16:30:19ID:???0422413
04/09/14 16:45:28ID:NAYEHf5jすいませんindex内で分岐の意味が・・・。
sub index {
$mode = $in{'mode'};
if ($mode eq "view") { &view; }
print "<a href=\"test.cgi?mode=view\">テスト</a>\n";
}
こういうことじゃないですよね?動きません(TT)
CGIは
#!/usr/bin/perl
print "Content-Type: text/html\n\n";
print "<html><body>\n";
〜
print "</body></html>\n";
です。<html></html>タグの行はさっき付け足しました。
0424nobodyさん
04/09/14 17:12:57ID:???if ($mode eq "view") { &view; }
&index;
sub index {
print "<a href=\"test.cgi?mode=view\">テスト</a>\n";
}
sub view {
print "this is a view\n";
exit; #←★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
}
0425nobodyさん
04/09/14 17:14:37ID:???#!/usr/bin/perl
require 'cgi-lib.pl';
$mode = $in{'mode'};
if ($mode eq "view") { &view; }
elsif ($mode eq "") { &index; }
sub index {
print "Content-Type: text/html\n\n"; #次に一行開けなけりゃだめ
print "<html><body>\n";
print "<a href=\"test.cgi?mode=view\">テスト</a>\n";
print "</body></html>\n";
}
sub view {
print "Content-Type: text/html\n\n"; #次に一行開けなけりゃだめ
print "<html><body>\n";
print "this is a view\n";
print "</body></html>\n";
}
0426nobodyさん
04/09/14 17:21:46ID:???最初、elsifがないからいつもindexが実行されてた。
次に、だめだったのは、content-type出力しなかったから。
というお粗松くんじゃないのか?
0427nobodyさん
04/09/14 17:35:55ID:???なんだりゃ・・・
0428413
04/09/14 17:36:16ID:NAYEHf5j>>425
いずれも駄目なのですが・・・(TT)なぜでしょう!?
後者は
require 'cgi-lib.pl';
の行は削除してコピペしました(エラーが・・)
0429nobodyさん
04/09/14 17:40:57ID:???紛らわしいので念のため言っておくと
>print "Content-Type: text/html\n\n"; #次に一行開けなけりゃだめ
># ここに空行を作るんじゃなくて ~~改行2個で空行ができてる
>>428
ちょっと確認
クエリ無ければindexを表示するのはわかったけど、
mode=viewならindex+"this is a view"?
それとも"this is a view"だけ表示?
0431nobodyさん
04/09/14 17:54:55ID:???>
ワロタ
0432nobodyさん
04/09/14 17:58:23ID:???0434413
04/09/14 18:03:13ID:NAYEHf5j>mode=viewならindex+"this is a view"?
>それとも"this is a view"だけ表示?
this is a viewだけ表示です。
ページを切り替えるような感じで。
0435413
04/09/14 18:11:36ID:???いくつもやりましたがとりあえず駄目その1です(test.cgi)
#!/usr/bin/perl
$mode = $in{'mode'};
if ($mode eq "view") { &view; }
elsif ($mode eq "") { &index; }
sub index {
print "Content-Type: text/html\n\n"; #次に一行開けなけりゃだめ
print "<html><body>\n";
print "<a href=\"test.cgi?mode=view\">テスト</a>\n";
print "</body></html>\n";
}
sub view {
print "Content-Type: text/html\n\n"; #次に一行開けなけりゃだめ
print "<html><body>\n";
print "this is a view\n";
print "</body></html>\n";
}
0436nobodyさん
04/09/14 18:14:25ID:???0437nobodyさん
04/09/14 18:14:42ID:???0440nobodyさん
04/09/14 18:18:27ID:???$|=1;
print "Content-Type: text/html\n\n";
require 'cgi-lib.pl';
&ReadParse(\%in);
if($in{'mode'} eq 'view'){ &view();}
&index();
sub index {
print "<html><body>\n";
print "<a href=\"test.cgi?mode=view\">テスト</a>\n";
print "</body></html>\n";
}
sub view {
print "<html><body>\n";
print "this is a view\n";
print "</body></html>\n";
exit(0);
}
exit(0);
0441413
04/09/14 18:36:18ID:NAYEHf5jエラーが出ます。
require 'cgi-lib.pl';
&ReadParse(\%in);
これをコメントアウトするとエラーは出ませんが、動作変わりません。
cgi-lib.plの記述は必要なのでしょうか?
参考にしてるフリーCGIではどれも使われて無いので・・・
なんか長くなってすいません。
0442nobodyさん
04/09/14 18:45:09ID:???その2行で?mode=viewというクエリを変数に格納している。
PHPだといきなり変数に入ってるから惜しいと言えば惜しいのかも。
「クエリ GET POST」あたりでググって勉強したほうがいい。
#! /usr/bin/perl
print "Content-Type: text/html\n\n<HTML><BODY>";
if($ENV{'QUERY_STRING'} eq "view"){
print "this is a view";
}else{
print "<A href=\"test.cgi?view\">view</A>";
}
print "</BODY></HTML>";
0443nobodyさん
04/09/14 18:45:30ID:???知らなかったらぐぐれ
0444nobodyさん
04/09/14 18:46:14ID:???$_GETとかに勝手に入ってくれるけど、perlは自分でしないとだめだよ
require "./cgi-lib.pl";
&ReadParse(*in);
$hoge = "$in{'hoge'}";
0445440
04/09/14 18:46:39ID:???いい加減にしろよ?w
ttp://cgi-lib.berkeley.edu/
ttp://www.futomi.com/lecture/form/cgilib.html
0446440
04/09/14 18:48:42ID:???$|=1;
print "Content-Type: text/html\n\n";
($dust, $in{'mode'}) = split(/=/, $ENV{'QUERY_STRING'}, 2);
if($in{'mode'} eq 'view'){ &view();}
&index();
sub index {
print "<html><body>\n";
print "<a href=\"test.cgi?mode=view\">テスト</a>\n";
print "</body></html>\n";
}
sub view {
print "<html><body>\n";
print "this is a view\n";
print "</body></html>\n";
exit(0);
}
exit(0);
0447413
04/09/14 19:02:05ID:NAYEHf5j442, 446で出来ました・・・!!
仰る通りクエリというのが解ってませんでした。
説明とリンクありがとうございました。
勉強します。
お手数おかけしました。><
0449nobodyさん
04/09/14 19:43:21ID:???0450nobodyさん
04/09/14 19:45:48ID:???0451nobodyさん
04/09/14 19:49:06ID:???0452nobodyさん
04/09/14 20:13:40ID:???0453nobodyさん
04/09/14 20:14:58ID:???0455nobodyさん
04/09/14 20:39:44ID:???0456nobodyさん
04/09/14 20:56:40ID:???0457nobodyさん
04/09/14 21:53:20ID:IqNnzcu2認証後のページを表示している段階では〜〜.cgiと表示されているのですが、
ページからリンクへ飛ぶとIDとPASSがURLに表示されてしまいます。
なんとかIDとPASSを表示させないような方法はないのでしょうか?
検索すると表示されないようにするにはセッション管理の方法がある
という事で調べています。
perlでセッション管理するには
ttp://www.atmarkit.co.jp/fsecurity/rensai/webhole03/webhole01.html
を見たところ
#!/usr/bin/perl
require 5.004;
use Digest::MD5 'md5_hex';
print md5_hex rAnd;
を加えればいいようなのですが、上手くいきません。
なかなか目的のページも見つからず途方にくれています。
どなたかご教授お願いします。
0458nobodyさん
04/09/14 21:56:26ID:???0459nobodyさん
04/09/14 22:03:09ID:???よく読め、そのページのどこにそれを加えれば
セッション管理ができるって書いてあるんだ?
ただ単に表示されないようにしたいだけなら>>458
0460nobodyさん
04/09/14 22:12:08ID:???0461nobodyさん
04/09/14 22:20:56ID:???foreach $a(@list){
print "$_ = $a\n";
}
上のように書いて期待する結果が
0 = a
1 = i...なんですが、、、
現在、何個目かという情報はどこかに入ってないんでしょうか。
いちいちカウントしてやらないとダメですか?
0462457
04/09/14 22:32:38ID:IqNnzcu2POSTってform形式でしか使えないですよね?
認証後のページでは確かにPOST使うと表示されないのですが、
認証後のページの中のリンクをクリックすると表示されてしまうのです。
リンクはたくさんあるのですが全てフォームボタン等作成するという事なのでしょうか?
0464457
04/09/14 22:51:13ID:IqNnzcu2ありがとうございます。
やはりcookieとセッションIDなんですね。
セッションIDとかcookieという言葉自体は調べたので
理解は出来ているんですが、
具体的な方法がなかなか検索しても見つからないもので・・・
perlを使うんですよね・・・うーん、難しい
0467nobodyさん
04/09/14 23:06:38ID:???foeach (@list) {
print $i++." = $_";
}
0468nobodyさん
04/09/14 23:09:02ID:???printf qq|%d = %s\n|, $a, $list[$a] foreach my $a (0..$#list);
0469nobodyさん
04/09/14 23:54:32ID:???0471nobodyさん
04/09/15 03:23:11ID:???foreach 修飾子はループ変数名に $_ 以外を使えない上、
その語順では my $a より前に $a が出てくるので文法エラー。
恥掻かずに済むよう、動作確認してから書こうよ。
0472nobodyさん
04/09/15 03:52:08ID:???初期化的な意味合いの0を行の先頭(あるいは上)ではなくて、
尻にもってこようとする上に変数の宣言部分が使用部分より
後にあるとは。。。
こういうやつが書くプログラムは300行程度で、もう意味不明。
Perlがそう書けるという悪い部分を勧めるべきではない。
0473nobodyさん
04/09/15 04:46:19ID:???sort,grep,mapつかってりゃざらやん。
@ayaya = sort{ }
grep { }
map{ } @ayaya;
こんなふうに書くと見やすくていいぞ。
print <<EOF if( ... );
うんこ
うんこ
EOF
儂は1万行超えるソースかいてるが
見にくいってのはグローバル変数を別モジュールで使いまわされて、
変数が何処からきてるんか解らんような描き方するやつのほうが困るな。
無論パッケージもooもされとらんようなやつ。
取敢えず読み慣れてないんなら慣れるしかなかんべ。
アルゴリズムがおかしいんならそこ突っ込むべき。
0474nobodyさん
04/09/15 04:53:16ID:???0475nobodyさん
04/09/15 05:05:59ID:???for (0..$#list){
print "$_ = $list[$_]\n";
}
でいいんじゃない?
0477457
04/09/15 12:29:12ID:OFkP/WKYスレ違いかも知れませんが、CGI::Sessionを勉強したいのですが、
いくら検索しても簡単な解説でどこで入手出来るか解らないサイトしかなく、
具体的に丁寧に解説してある書籍・サイトとかありますか?
CGI session perl クエリ 等で検索してもなかなか見つからなく、
Amazonで検索してもCGI Session だとヒットしないので・・・。
なんとか下記のサイトを見つけましたがCGIセッションに関する記述が少なくて・・・
ttp://digit.que.ne.jp/work/index.cgi?Perl%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%2FWalrus%3A%3ASession%3A%3ALite
ただ単純にURLのクエリ文字列?にIDやパスワードが表示されないようにしたいだけなのですが、、難しいもんですね
ページ上のリンク(かなりありますが)を全てフォームボタンでPOSTで送信するように作成した方がいいのでしょうか?
0478nobodyさん
04/09/15 12:59:29ID:???>今の時代にcgi-lib.plかよ
CGI.pmの方が処理が重い。utf8,16なんぞも入ってるからな。
cgi-lib.plで済むところでは、あえてCGI.pmを避けるのがプロ。
0480nobodyさん
04/09/15 13:08:39ID:???CGI::Session説明してるサイトが見つからないだと?
試しにCGI::Sessionでググったらトップにきましたが。
それ見てわからないんだったら入門書見直した方がいい。
0481457
04/09/15 13:25:08ID:OFkP/WKYそういうページは既に見ました。
どういう仕組みかは書いてありますが、
具体的にどこで入手したりとかそういった方法も解らなくて、
perl/cgi入門書にも載ってなくて、CGIセッションの本があるなら是非買いたいのですが、
Amazonで検索しても見つからないので途方に暮れているのです。
気に障ったようですいません。
0483457
04/09/15 13:36:33ID:OFkP/WKYそのソフトも試してみましたが、
やはり認証後ページからリンクをクリックするとIDとPASSがURLに追加され
表示されてしまいます。
段々、スレ違いになってきているようなので退散します。
すいませんでした
0484nobodyさん
04/09/15 13:51:16ID:???>>5
http://search.cpan.org/~sherzodr/CGI-Session-3.95/
0485nobodyさん
04/09/15 13:53:46ID:???0488※ ◆r7Y88Tobf2
04/09/15 15:54:43ID:???どうすればスペースが開かないようにできますか?
0492nobodyさん
04/09/15 17:25:34ID:???0495nobodyさん
04/09/15 17:49:10ID:???0496nobodyさん
04/09/15 19:19:54ID:???datファイルの5行目をいきなり(1から4行目は読ませず)変数に読み込ませるにはどうしたらいいですか?seek関数では無理ですか?
datファイルの例
[0001](\n)
04/09/15(\n)
Name(\n)
http://www.〜〜(\n)
〜@〜.co.jp(\n)
Pass(\n)
IP(\n)
……
0497nobodyさん
04/09/15 19:58:31ID:???ttp://iis1.cps.unizar.es/Oreilly/perl/cookbook/ch08_09.htm
0500500
04/09/16 07:33:57ID:???他の #exec cgi と #include virtual は何を使えば実行してくれるのでしょうか?
0501nobodyさん
04/09/16 08:35:14ID:???何言ってるかわからんぞ。
SSIとかCGIなどは、httpdサーバ(たぶんApache)の設定で実行できるか
どうかが決まる。
それと#exec cmd とか、#exec cgi とか、 #include virtualって何だ?
#はコメント記号だが。Perlスクリプトに何て書いたか書いてみろ。
0502500
04/09/16 09:10:41ID:???ssiのコマンド exec 引数 cmd を perl で実行するには require で出来ますよね?
ssiの他の、#exec cgi や #include virtual は perl ではどうやって呼び出したら実行してくれるのか。と言う事です。
0503500
04/09/16 09:16:23ID:???0504nobodyさん
04/09/16 11:05:43ID:???近いものを選ぶとこんな感じになるのかな。
<!--#exec cmd="test.pl"--> →require
<!--#exec cgi="cgi-bin/test.cgi"--> →socket
<!--#include virtual="test.txt"--> →open
0505nobodyさん
04/09/16 11:06:40ID:kf2OMroI渡した"keyword"を受け取ったcgiのほうで
変数に入れる方法が知りたいのですが・・・。
よければその方法(?で何か渡す)を何と呼ぶのか
キーワードだけでも教えてもらえれば調べます、
初歩的ですいません。よろしくおねがいします。
0506505
04/09/16 11:15:26ID:???調べたら出てきました、「引数」ですね
ほんとすいません・・・・
ttp://tohoho.wakusei.ne.jp/wwwcgi3.htm
0507nobodyさん
04/09/16 12:04:04ID:???キーワードは「クエリ メソッド」
GETの場合既に$ENV{'QUERY_STRING'}に"keyword"が入ってる
0509500
04/09/16 14:35:39ID:???ただ socket を使った事が無くて検索してみましたけど、意味もあんまり分からなかったです。
どう記述したら良いのでしょうか?
読み込むファイルによって異なる記述になるんでしょうか?
0511nobodyさん
04/09/16 14:52:41ID:???1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
0512500
04/09/16 15:15:35ID:???require '../xx/xx.cgi';
でやったらログファイルへのパスが上手くいきませんでした。
xx.cgiの中には
$logfile = "xx.txt";
if(!open (DATA,"$logfile")){&output("error404"); exit;}
と言うのを書いてるので、error404 と出ます。
同じフォルダに持ってくると出来ますが、違うフォルダじゃなければいけないので…。
それで、>>504さんの解答をもらったので socket ではどうやって記述したら良いのかなと。
ディレクト構造は、
+folder1
┣xx.cgi
┗xx.txt
+folder2
┗xx.cgiを呼び出したい.cgiファイル
です。
0513nobodyさん
04/09/16 15:20:35ID:???> 意味もあんまり分からなかったです。
( ´ー`)フゥー...
0514nobodyさん
04/09/16 15:26:55ID:???socketを使うまでもないな。
$logfile = "xx.txt"; → $logfile = "../folder1/xx.txt";
でどうだろう。
0515nobodyさん
04/09/16 15:32:26ID:kf2OMroIこのようにファイルを読み込んで、追加書き込みしているのですが
open(IN, "$outfile");
@data = <IN>;
close(IN);
open(OUT, "> $outfile");
print(OUT "<div>new</div>\n@data");
close(OUT);
こうしてデータを追加していくと$outfileの中が
<div>new</div>
<div>new</div>
<div>new</div>
このようにスペースが入り込んでズレていくんです。
原因わかりますでしょうか。
0518500
04/09/16 16:05:00ID:???表示出来ました(^^;
ありがとうございます。
と言うか思いつかなかった自分が恥ずかしいです…。
>>513
socket ってそんなに使う物なんですか?
socket 使ってる配布CGI一個しか見た事ないんですけど…
敷居が高いとか?
今勉強している本にも無かったです(汗
0519nobodyさん
04/09/16 16:24:21ID:???0521nobodyさん
04/09/16 16:31:30ID:???他のサーバーのページやらcgiの出力結果を取得できるので
単語(含>>519)だけでも覚えておけばいいと思う。
0523nobodyさん
04/09/16 16:58:25ID:TnwBmEsgImage::Magickモジュールを使って画像サイズを変更することは可能でしょうか。
#Image::Magick
use Image::Magick;
$width = 120;
$img = Image::Magick->new;
$img->Read("xxx.cgi");
$img = $img->Transform(geometry => $width);
print "content-type:image/png\n\n";
binmode(STDOUT);
$img->Write("png:-");
Image::Magickがcgiファイルを読み込めないみたいなので
GDモジュールの方でxxx.pngといったような画像ファイル名を
吐き出させる方法がわかりません。
#GD
use GD;
$w = 500;
$h = 500;
$im = new GD::Image($gw,$gh);
(描画処理)
$im->png(-1);
0524その(1)
04/09/17 00:29:48ID:iw09y7mQ#!/usr/local/bin/perl
require "./cgi-lib.pl";
&ReadParse();
$number_2 = $in{'number_1'};
#置き換え開始
$number_2 =~ s/イチ/1/g;
#$number_2 =~ s/ニー/2/g;
$number_2 =~ s/サン/3/g;
$number_2 =~ s/ヨン/4/g;
#$number_2 =~ s/ゴー/5/g;
$number_2 =~ s/ロク/6/g;
$number_2 =~ s/ナナ/7/g;
$number_2 =~ s/ハチ/8/g;
#$number_2 =~ s/キュー/9/g;
#$number_2 =~ s/ゼロ/0/g;
0525その(2)
04/09/17 00:30:12ID:iw09y7mQprint <<"ABCD";
Content-type: text/html
<html>
<body>
$number_2<br>
</body>
</html>
ABCD
これが本文です、number1には「ナナニーサンニーイチキューハチキューゼロ」の
ような文字(htmlのformからとってくる)が入っていて、それを数字に直したいです。
しかし、なぜか2、5、9、0の置き換えをしようとするとエラーになってしまいます。
なぜなのでしょうか
0526nobodyさん
04/09/17 00:33:21ID:???↑ ↑ ↑
0527nobodyさん
04/09/17 00:46:12ID:???'ー' 0x815B
'ゼ' 0x835B
# 0x5B → [
だからコケるのでしょう。
むしろ、「ニー」「ゴー」が関西ローカルなことに注意してください。
0529nobodyさん
04/09/17 01:21:24ID:???どんなCGIを作ろうとしてるのか気になりますなぁ
0530nobodyさん
04/09/17 01:22:14ID:???なら大丈夫。
0531nobodyさん
04/09/17 04:04:27ID:???ならもっといい
0532525
04/09/17 04:26:09ID:iw09y7mQイチ ニー サン ヨン ゴー ロク ナナ ハチ キュー ゼロ
から成る文字列は、自分で作るのではなくコピペしてformにもってくるものなので
できればこのまま使いたいのです。それじゃないと、この変換を頭でやったほうが
速くなってしまう
しかし、”ー”と”ゼ”が入っていては正規表現は使えないってことですよね、
どうしたらいいんだか。。
0533nobodyさん
04/09/17 04:57:01ID:???require 'jcode.pl';
$number_2 = $in{'number_1'};
&jcode::convert("*number_2", "euc");
この上と下の2行を加えればよい。jcode.plでググルこと。
0534nobodyさん
04/09/17 05:04:55ID:???0535534
04/09/17 05:05:45ID:???0536nobodyさん
04/09/17 06:10:09ID:???0537nobodyさん
04/09/17 08:38:01ID:???0538nobodyさん
04/09/17 12:32:25ID:fDDxvp6Zすいません、上の配列をフォームで送った時にEUCに書き換えようと
した場合、&jcode'convert(*ura,'euc');でやると文字化けします。
どの部分を指定してやればよいのですか?
0539nobodyさん
04/09/17 12:37:40ID:???0540nobodyさん
04/09/17 13:36:28ID:442/c2rwuse strict;していると、Fcntlの定数O_RDONRYなどに
引っかかりエラーが出てしまうんですが、これってしょうがないんでしょうか?
use strict 'vars';
だと大丈夫なのですが・・・。
すんません、おながいします。
Software error--------------------------------------
Bareword "O_RDONRY" not allowed while "strict subs"
----------------------------------------------------
tie(my %h, 'SDBM_File', $dbm_name, O_RDONRY, 0600);
ここの、O_RDONRYの部分です。
0541nobodyさん
04/09/17 14:03:17ID:???jcode::convert(\$_, 'euc')
for @answer{qw(team2 1u 2u 3u 4u 5u 6u 7u 8u 9u totalu)};
>>540
s/O_RDONRY/O_RDONLY/g;
0544543
04/09/17 14:24:49ID:???0545540
04/09/17 15:10:51ID:???ほんとすんません・・・。
O_RDWRだと大丈夫なのにどうして!?
とかしばらく、strictとFcntlについて調べてました・・。
0546nobodyさん
04/09/17 15:47:49ID:???0547538
04/09/17 16:06:15ID:fDDxvp6Zありがとうございました。無事解決しました。
まだperlはじめたばかりで、教科書にも載っていない事だったので
感激です。
0548nobodyさん
04/09/17 19:39:02ID:???0549nobodyさん
04/09/17 19:49:43ID:???0550nobodyさん
04/09/17 20:17:45ID:???アクセスカウンターが
2412351.5
みたいになっておかしくなるのでダメなんです。
0551nobodyさん
04/09/17 20:21:07ID:???0552nobodyさん
04/09/17 20:23:33ID:???いきなりテンプレのプログラムのための文字列を覚えてもさっぱりです
0554nobodyさん
04/09/17 20:40:58ID:???出力時に1ビット右シフト。
0557nobodyさん
04/09/17 20:53:37ID:???まずPerlが何の略かを調べればそれが答えになるかも。
つーか他に何か知ってる言語あるの?
それ書いてくれたら答えやすいかもしらん。
0560nobodyさん
04/09/17 22:54:49ID:???0562nobodyさん
04/09/18 12:04:43ID:???dクス
0563538
04/09/19 01:32:18ID:n0F83URY僕も初心者なんですが、テンプレを丸写ししても何もわからないです。
僕が今している事は、よく使われるような関数(25個くらい)と、構文(10個くらい)
それと、正規表現、サブルーチン、ライブラリの使い方、これらを徹底的に
覚えようと思っています。いきなり完成されたテンプレからはじめるよりも
パーツから覚えていくほうが絶対にいいと思います。それと、ローカルで
CGIを動かせるように、perlやhttpd、apachなんかを入れておくと、htmlを
ローカルで動かすよに手軽にコーディングして動作確認できます。
お互いに、挫折せずに頑張りましょう
0564nobodyさん
04/09/19 01:50:03ID:???0565nobodyさん
04/09/19 05:10:18ID:vPjLXO2Q上記のような文字列検索を行っています。
$aの中身は"pc imode voda ezweb"です。
if(index $a,"ezweb"){ $b= $pcbnr;};の場合は正常に動作します。
"pc"と言う文字列だけは上手く判断出来ないようです。
何故でしょうか?
0566nobodyさん
04/09/19 05:40:18ID:???検索して何をしたいの?
それと最後の";"いらないよ
0567nobodyさん
04/09/19 05:57:32ID:???index $a,"pc"の返り値が0だから
つーか、indexが何をする関数か調べろ。
ただマッチングしたいんだったら
if($a =~ /pc/){
…
}
0568nobodyさん
04/09/19 06:00:15ID:???cgiでやるよりコンソール(.plファイル)でやったほうが効率いいかもよ。
行数少ないし、すぐにエラー行数分かるし。
0569nobodyさん
04/09/19 21:10:27ID:8Bm3sZnu書き込みを保存しているファイルから、指定した件数(仮に5件とします)だけ読み込み、続きも"次の5件"のようなリンクで5件ずつ読み込んで行きたいのです。
いろいろ参考書を読んでみましたが、方法が思いうかびません…
よろしくお願いしますm(_ _)m
あと、HTTPヘッダ排出のあとは2行あけないといけないと言われたのですが、なぜなのでしょうか?
0570nobodyさん
04/09/19 21:11:25ID:???0571nobodyさん
04/09/19 21:13:32ID:???0572nobodyさん
04/09/19 22:03:10ID:???ちゃんと最初からPerl勉強した方がいいと思う
>あと、HTTPヘッダ排出のあとは2行あけないといけないと言われたのですが、なぜなのでしょうか?
2行?1行じゃなかったっけ?とりあえずRFC嫁
0573nobodyさん
04/09/19 22:05:28ID:???569は改行コードが二つっていいたかったのかな。
0574565
04/09/20 00:38:39ID:WP+I8Woyif関数でも出来たんですね、パターンマッチ演算子は配列じゃないと駄目かと思っていました。
index $a,"pc"の返り値が0と言うのが解らないのです、$aは"pc imode voda ezweb"です。
自分で色々やってみた所、if(index $a," pc"){ $b= $pcbnr;};とすると思い通りに動作しました。
なぜ、半角スペースを入れるとするのでしょうか?
0576nobodyさん
04/09/20 01:52:41ID:???-1が返ってくるから。
indexが何する関数なのか調べろと567が言ってるだろ。
あと、おそらくおまいの思い通りには動いてないからな。
ためしにマッチしない文字でやってみなはれ。
ついでにifも調べて来い。
0577565
04/09/20 03:24:21ID:WP+I8Woy勘違いしていたようです。汗
indexは文字列検索に使う関数だと思っていたのですが、文字列の位置を返す関数なのですね。
CGIの本に書かれていたサンプルソースがパターンマッチっぽい例だったので、文字列検索向けの関数かと思っていました。
ifは数値が 「0」 か 「空」 の場合には偽、それ以外の場合には真なんですよね。
負の値も偽と判断されると思い込んでいました。
>>567さんのやり方で確実に動作する事を確認しました。
結構、適当にPearlを勉強していたのですが、もっと真面目にやろうと思います。汗
有り難う御座いました。
0579nobodyさん
04/09/20 04:16:07ID:???0580nobodyさん
04/09/20 06:08:04ID:???そお遠いわけでもないがな。
0581nobodyさん
04/09/20 09:22:55ID:???0582nobodyさん
04/09/20 10:17:23ID:???まあ、ガンガレ
0583nobodyさん
04/09/20 18:56:55ID:???3
と表示されました。どうなっているんでしょうか?
print "Content-type:text/html\n\n";
@_ = ("あ<>か","い<>き","う<>く");
@value = split(<>, @_);
print $value[0],<br>;
print $value[1],<br>;
print $value[2],<br>;
print $value[3],<br>;
print $value[4],<br>;
print $value[5],<br>;
print $value[6],<br>;
print $value[7],<br>;
0584nobodyさん
04/09/20 19:01:04ID:???0585nobodyさん
04/09/20 19:13:51ID:???0587nobodyさん
04/09/20 19:26:10ID:???0588583御破算
04/09/20 20:29:46ID:???え、そうなんですか(;_;)
>586
404は出ませんでした。httpdとinfoseekで確認しました。
>585>587
ありがとうございます。今携帯から見ているので、後で試してみます。
0590nobodyさん
04/09/20 20:47:03ID:???0591nobodyさん
04/09/20 21:15:09ID:???@value = split(<>, '3');
と同じ
0592nobodyさん
04/09/20 21:27:36ID:???0593583
04/09/20 22:31:17ID:???403でしたorz
>590
httpdがバグった、と思ったので…httpdで試してsyntax errorが出ず、永久ループでなくてもダメですか?
>591
ありがとうございます。それも調べてみます
>592
ローカルとはmyのことですか?だとしたらどこをローカル化すればいいんですか?
0594nobodyさん
04/09/20 22:39:12ID:???|
∩___∩ |
| ノ _, ,_ ヽ (( | プラプラ
/ ● ● | (=)
| ( _●_) ミ _ (⌒) J ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0595nobodyさん
04/09/20 22:52:17ID:???ttp://support.microsoft.com/default.aspx?scid=kb;ja;879066
httpdがバグったって・・・。
何故プログラムを先に疑わないんだ。
0596nobodyさん
04/09/20 22:52:25ID:???0597nobodyさん
04/09/20 22:56:31ID:???@_ = ("あ<>か","い<>き","う<>く");
foreach(@_){
$baka .= $_;
}
@value = split(<>, $baka);
print $value[0],<br>;
print $value[1],<br>;
print $value[2],<br>;
print $value[3],<br>;
print $value[4],<br>;
print $value[5],<br>;
print $value[6],<br>;
print $value[7],<br>;
0599nobodyさん
04/09/20 23:20:32ID:???print "Content-type:text/html\n\n";
print $_."<br>",for split /<>/ ,join("<>",@_);
0600nobodyさん
04/09/20 23:27:37ID:???0601nobodyさん
04/09/20 23:28:38ID:???0602nobodyさん
04/09/20 23:29:06ID:???echo hage| perl aa.plすると、確かに3と出力される。
何が起こっているか誰か解説してくれ。
0604nobodyさん
04/09/20 23:34:53ID:???http://www.kt.rim.or.jp/%7Ekbk/perl5.005/perldata.html#List_value_constructors
0606583
04/09/20 23:55:49ID:???よく強制終了するので…クロック数300rヘルツ鯖(´・ω・`)
>599
join関数なんてあったんですね。知りませんでした
>591
>603で気付いた、前スレ誤解スマソ
>604
そういうことだったのか…
0608nobodyさん
04/09/21 21:16:47ID:UQFv84yKナイスなライブラリがないでしょうか・・・
もう自分で書くしか?
0610nobodyさん
04/09/21 22:12:03ID:???0611nobodyさん
04/09/21 22:56:33ID:???判別したり、容量、日時を読み出しているのですが
どこかにそういう関数とか解説されたHPないですか
>>1あたりのリンクにはなかったです
0613nobodyさん
04/09/21 23:24:42ID:VDADrx76ヘッダを作成し、その内容にそってメールを送信するようにしているのですが、
特定の環境下で文字化けが発生してしまうようです。
ヘッダに
Content-Type: text/plain; charset="ISO-2022-JP"
と追加しているのですが、コレだけではダメなのでしょうか?
もう一点、質問なのですが、Beckyなどのメーラーから送信するとヘッダに
Content-Transfer-Encoding: 7bit
が付属されていますが、この内容も文字化けに関係しているのでしょうか?
質問内容が、Perlとちょっと離れているかもしれませんが・・・
よろしくお願いします。
0615608
04/09/21 23:38:12ID:UQFv84yKPurePerlだと、PPMとか使ってインストールしなくても、
任意の場所にモジュールファイルを置いて、requireすればOKなんでしょうか?
0616nobodyさん
04/09/21 23:44:41ID:???0617nobodyさん
04/09/21 23:59:06ID:VDADrx76スイマセン、RFCって何でしょうか・・・・
このような質問は、そちらですれば良いと言う事ですか?
0618nobodyさん
04/09/22 00:09:08ID:???0619nobodyさん
04/09/22 01:11:45ID:???0621nobodyさん
04/09/22 10:52:47ID:???0622nobodyさん
04/09/22 11:54:45ID:???http://www.google.co.jp/search?q=RFC&hl=ja&lr=lang_ja
http://pc5.2ch.net/test/read.cgi/php/1095633323/
0623nobodyさん
04/09/22 15:34:38ID:???Perlを使用してDBアクセスを行いたいのですが、
開発環境はどのように作成したら宜しいのでしょうか?
インタプリタ等、必要ですよね・・・
0624nobodyさん
04/09/22 15:56:04ID:???0625nobodyさん
04/09/22 16:07:28ID:???環境構築は特に必要ないのでしょうか?
何も入っていないPCに
PerlインスコしてOracleインスコして
それから、FTPでCgiをUpすれば良いということでしょうか?
0628nobodyさん
04/09/22 17:03:07ID:???例えば、http://hoge.com/xxx/test.cgiのtest.cgiにアクセスした時に、
ディレクトリ名のxxxを変数として取得したいのですが。
よろしくお願いいたします。
0631nobodyさん
04/09/22 17:46:12ID:???んー、難しい。
0632nobodyさん
04/09/22 17:55:43ID:???あれ!?そうだっけ、すまん。
んじゃ
$ENV{'SCRIPT_FILENAME'}, $ENV{'SCRIPT_NAME'}, $ENV{'REQUEST_URI'}
でどお?
0635nobodyさん
04/09/22 19:23:37ID:???0636nobodyさん
04/09/22 21:15:51ID:???0638nobodyさん
04/09/23 12:05:23ID:???0639nobodyさん
04/09/23 12:07:07ID:???0640nobodyさん
04/09/23 13:49:58ID:+nr7omoUURIエンコードされてる文字列を元に戻すコードは
$buffer =~ s/%([a-zA-Z0-9][a-zA-Z0-9])/pack "H2",$1/eg;
$buffer =~ s/%([a-zA-Z0-9][a-zA-Z0-9])/pack "C",hex($1)/eg;
この二つのどちらでもデコードできますが、どちらがおすすめですか?
前者の方が処理は速いです。でもだいたいの入門サイトには後者のコードが載ってます。
そこらへんで悩んでます。みなさんあどちらを使ってますか?
0642nobodyさん
04/09/23 13:52:47ID:+nr7omoUどうしてそういうこと言うんですか!?
0644nobodyさん
04/09/23 14:06:57ID:+nr7omoUそんなっ・・・・・
Cでやるのは明らかにに非効率で、処理時間も倍かかるのに何故かCの方がスタンダードな
理由をあたしと話してみてもいいじゃないですかっ!
もういいもん。あたし帰るからねっ!
0646nobodyさん
04/09/23 14:30:55ID:+nr7omoU何よあんたっ!?すっごいむかつくっ!信じらんない!
もうやめて!あなたここにこないで!絶対にこないでよ。
0647nobodyさん
04/09/23 14:49:03ID:???0648nobodyさん
04/09/23 14:50:28ID:qhT0f5z2my ($a=1,$b=2); だとエラーになります
定義したあとに一つ一つ代入していくしかないのでしょうか?
0649nobodyさん
04/09/23 14:52:57ID:+nr7omoUmy ($a,$b) = (1,2);
0650nobodyさん
04/09/23 14:56:18ID:???0651nobodyさん
04/09/23 15:01:42ID:???my @a = qw/ a b c/;
my @b = qw/ a b c d/;
二つの配列があって、@bには@aの持ってない値を持つことを禁じたいのです。
なので@aにない値なら削除したいのですが、どうかけばよろしいですか?
for ( 0..$#b)
とかやるとブロック内で@bの要素を減らすと問題がありますよね・・・おねがいします。
あ、あと追加で済みませんが、
my $a = [qw/1 2 3 4/];
のような場合のラストインデクスの求め方は
@$#a
でうまくいかないのですが、どうかくのですか?
0655nobodyさん
04/09/23 15:28:26ID:+nr7omoUmy @c;
foreach my $value (@b){
if ( map /$value/, @a ) { push @c,$value }
}
これで@cの中には@aにあるものしか入らないよ。>>653はむかつくやつだから
無視した方がいいよっ!だって私回答したんだから、それくらい言う権利あるわよね!
0656nobodyさん
04/09/23 15:30:20ID:???前半:
my %a;
map $a{$_}++, @a;
@b = grep !$a{$_}, @b;
後半:
$#$a
0657nobodyさん
04/09/23 15:33:08ID:+nr7omoU何あんたっ!もう私が答えてるのよ!失礼なことしないでよっ!バカじゃないの!
0659nobodyさん
04/09/23 15:56:18ID:???0660651
04/09/23 16:04:15ID:+nr7omoU0661nobodyさん
04/09/23 16:56:25ID:???0663nobodyさん
04/09/23 17:06:44ID:EIIt3BOR簡易的なサンプルのグラフが出力でき、目的の棒グラフを作ろうと
思って、棒グラフと、点ぐらふで、左軸と右軸にそれぞれ違った
数値を持たせようと思い、オプションのセットの部分で、
$graph->set(
(略)
two_axes => true,
y1_max_value =>100,
y1_min_value =>0,
y2_max_value =>50,
y2_min_value =>0
);
と表してみたのですが、左の軸しか出力されません。
true_axesの値がtrueの時と言うことは、書いてあったので、
そこがおかしいのかと思い、two_axes => "true",としてみたり
two_axes => 1,としてみたり、色々試してみたのですが、
だめでした。どのようにしたら、左右別々の軸の値を出すことが
できるでしょうか?ご教授お願いいたします。
0664nobodyさん
04/09/23 18:28:51ID:???もしも$aの値の中にa-zA-Zとハイフン(-)以外を含んでたら処理発動ていうのがしたいんですが、
$a =~ /[a-zA-Z\-]/;
としてもうまくいきません。ハイフンをエスケープできてないのでしょうか?
0665nobodyさん
04/09/23 18:48:23ID:???処理
}
0666nobodyさん
04/09/23 19:43:29ID:???0667664
04/09/23 20:46:29ID:???すみません。そこ書き間違えてました。
[^a-zA-Z\-]としてます。
my $a = "abcdeFGRYEHDU-sss-";
print "ok" if $a =~ /[^a-zA-Z\-]/;
これだと普通にうまくいくようなので、どうやら初めから他の部分のコーディングにミスがあったんだと思います。
すみません。
0668nobodyさん
04/09/23 21:16:21ID:???CGI::Liteのparse_cookiesを呼ぶと、
なぜかフォームの内容までが取得されてきてしまったり、
逆にparse_form_dataでクッキーの内容まで取得されたり、ということが起きています。
parse_cookiesは、parse_form_dataとほとんど同じ動きをする、
というのをどこかで見ましたが、同じ内容が取得されるということなのでしょうか?
0669nobodyさん
04/09/24 00:20:24ID:???いちいちif文で$a>=$b && ...... とやる以外に方法はありますか?
0672nobodyさん
04/09/24 01:07:35ID:AJG/3HYEEditorでいじろうかと思ったのですが
文字が文字化けして何を書いてあるのかわからないのですが
この文字化けを解決する方法ないでしょうか?
0673nobodyさん
04/09/24 01:23:51ID:???0674nobodyさん
04/09/24 01:26:51ID:QHIu4qbQなにか手軽な方法はないでしょうか?
キーは不定なので直接指定することはできません
今は↓のようにいったん key を配列にしてからソートして目的の key を
指定してるんですが他に何かいい方法はないでしょうか?
my @tmp = sort keys(%abc);
my $data1 = $abc{$tmp[0]};
my $data2 = $abc{$tmp[$#tmp]};
0675nobodyさん
04/09/24 02:22:53ID:???ハッシュのキーには順番はないんだからそれでもしょうがないんじゃない?
ところで連番って、キーは数字なのか?
もしそうならそれだと最後は得られないけど。
sortだけだとキーが1〜10としたら 1 10 2 3 4 ・・・になってしまう。
@tmp = sort { $a <=> $b } keys(%abc); にしないと。
0677nobodyさん
04/09/24 11:12:13ID:???0678nobodyさん
04/09/24 11:23:21ID:???0679nobodyさん
04/09/24 11:32:22ID:???小さいときどうかは微妙だよな。perlのsort意外に速いし...
0680nobodyさん
04/09/24 14:05:57ID:???use Benchmark;
use vars '%Hash';
my %rand;
$rand{ int rand 100000 }++ while keys %rand < $ARGV[0];
@Hash{ keys %rand } = values %rand;
timethese(-5, {
each => sub {
my $min_key = 100000;
my $max_key;
for (keys %Hash) {
$max_key < $_ and $max_key = $_;
$min_key > $_ and $min_key = $_;
}
my($min_value, $max_value) = @Hash{$min_key, $max_key};
},
sort => sub {
my @key = sort { $a <=> $b } keys %Hash;
my($min_value, $max_value) = @Hash{@key[0, -1]};
},
});
0681nobodyさん
04/09/24 14:25:15ID:???ttp://www.din.or.jp/~ohzaki/perl.htm#JP_Escape
後者のコードがスタンダードなのは、CGI が流行ったころに
後者を使ったスクリプトが出回ったせいじゃないかな。
他にも chr と hex を使ったものも見たことがある。
0682nobodyさん
04/09/24 16:37:42ID:???$buffer = uri_unescape($buffer);
0683nobodyさん
04/09/24 19:34:09ID:???if ( $a == 1 && $b == 1 or $c == 1 ){...}
とか
if ( $a ==1 &&
$b == 1 or
$c ==1 ){..}
どっちもイマイチ見づらい。おまいらはifの条件文がやむを得ず長くなってしまったときに
どうやって視認性を確保してる?
0685683
04/09/24 19:55:58ID:???そうだったorzごめん。
それで何かいい書き方ないかな?一番いいのは冗長な条件文にしないことだけど、
たまにどうしようもないときってあるでしょ?
時間がないから妥協とかするときにでも、とっさにできる最低限のこととして
読みやすさだけは確保したいよね。
0687683
04/09/24 20:07:59ID:???そういう話ではないんだ^^;
条件文を冗長でないものにする方法じゃなくて、
冗長な条件文の読みやすくするための書き方みたいな感じ;
0688nobodyさん
04/09/24 20:08:48ID:???else BLOCK が不要なら
{
EXPR && EXPR || last;
EXPR || last;
...
}
とか。
Perl に限った話じゃないから、この辺ででも聞けば?
http://pc5.2ch.net/test/read.cgi/tech/1068752664/
0689nobodyさん
04/09/24 21:16:00ID:???↓Perl
ttp://bcmnhp1.hp.infoseek.co.jp/content2.txt
↓DATファイル
ttp://bcmnhp1.hp.infoseek.co.jp/ctdata2.txt
DATファイルの一行目は上手く動作していますが,二行目の同一IPをチェックする方に何故か初めと終わりに:が付いてしまいます。
↓処理後DATファイル
ttp://bcmnhp1.hp.infoseek.co.jp/ctdata2_b.txt
一体なにが起きているんでしょうか?
0691nobodyさん
04/09/24 21:55:07ID:???ここで改行削除されてないから。
こうするとよくわかるんじゃない?
foreach $_ ( @count ) {
print COUNT "[$_:]";
}
foreach $_ ( @ip ) {
print COUNT "[$_:]";
}
0692689
04/09/25 08:34:52ID:???おぉ!出来ました!ありがとうございました!
0694nobodyさん
04/09/25 13:47:46ID:???test
というキーがあるかないかを調べるにはどう書くのが一番ですか?
if ( map/^test$/,keys %hash ) {
print "ありました";
}
もっと簡単な方法はありますか?
0696nobodyさん
04/09/25 14:13:17ID:???お前・・・・
最適化する時間も、才能も、素質も、スキルも・・・・・・・ないorz
そんなとき、そんな俺でも読みやすいソースにしたいっていってんだよボケ!
出直してこいや
0697nobodyさん
04/09/25 14:41:12ID:???0698nobodyさん
04/09/25 16:48:19ID:???if ($a == 1 and $b == 1 or $c == 1) {print 'ok'}
if ($a == 1 && $b == 1 || $c == 1) {print 'ok'}
if (($a == 1) * ($b == 1) + ($c == 1)) {print 'ok'}
if ($a == 1 and $b == 1) {print 'ok'} elsif ($c == 1) {print 'ok'}
視認性は、全体のアルゴリズムとコメントで解決するのが一番で、
if文をどう記述するかは二の次だと思うんだけど?
0699nobodyさん
04/09/25 17:03:11ID:???見易さ(=見た目スッキリ)と読みやすさ(=処理内容のつかみやすさ)は別でしょう。
話の流れを追っても、あなたがどっちを優先したいのかがもひとつ見えないよ。
ここの人に最適化してもらうよりも、自分がわかりやすいと思うコード・記述に
しとけばいいと思うんだけどな。適度に冗長性を確保するのも大事だろうし。
>>698も書いてるけど、コメントのほうで整理しとけば条件文が長いことぐらいは
気にならないと思う。
と、>>686が一瞬「三浦理恵子」に見えた人が書いてみる。
0700683 696
04/09/25 18:11:58ID:f8iWY7is>見易さ(=見た目スッキリ)と読みやすさ(=処理内容のつかみやすさ)は別でしょう。
>話の流れを追っても、あなたがどっちを優先したいのかがもひとつ見えないよ。
別なの?同じだと思ってた。
一番いいのはスキルアップして、最適なコーディングを瞬時にできるようになることなんだけど、
実際Perlばかりに時間を割けないので、とりあえず見やすさ&&読みやすさ%%把握しやすさだけ
なんとかならないかなと思って。
もちろん最適なコーディングに勝るものは無理だけど、少しはいい書き方ってあるのかなと。
いわゆる改行の入れ方、スペースの明けかた、揃え方。
まああいまいすぎだよね。絶対的な回答ではなく、みんなの習慣的な書き方の解答とかが
ほしかったけど・・・しつれいしますた。
0701nobodyさん
04/09/25 19:43:11ID:???0702nobodyさん
04/09/25 20:26:15ID:???0703nobodyさん
04/09/25 21:16:28ID:???少なくて意味がわからんかったときは時間かぐっとかるが、
多めなのは読み手が消せばいいだけだから問題ないし。
アルゴリズムの問題は書法の範囲の記法とは別次元だわな。
それは非常に大きな課題だし。
0704nobodyさん
04/09/26 18:13:38ID:tuEyJcFU・テキストの中から<div align="left">という文字列が含まれる行を探す
・みつかった<div align="left"> の行から、その次の </div> までのテキストを
抜き出してprintする
-<div align="left"> はテキスト中に1つのみです。
-</div> は何度も出てきます。
現状 @stringlist に突っ込んで、行数固定で抜き出していますが、
これだと(動的に生成されるページである為)内容が変わってしまうと
対応できません(当たり前)^-^;
よい方法があればお教えくださいm(_ _;)m
0706704
04/09/26 18:31:00ID:tuEyJcFUいま、こんなかんじです^-^;
--------------------------------------------------
#!c:\perl\bin\perl.exe
open(IN, "bin.html") || die "cannnot open!\n";
@stringlist = <IN>;
#読み出す行数
$end = 10;
for ($begin=1;$begin<$end;$begin++){
print @stringlist[$begin];
}
close(IN);
--------------------------------------------------
0707704
04/09/26 18:31:31ID:???0708なちじょあ ◆yEbBEcuFOU
04/09/26 18:51:12ID:???$text =~ s|.*<div align="left">(.*?)</div>.*|$1|s;
0709704
04/09/26 18:53:56ID:???2.$end = 1の行数から検索を開始して</div>が見つかった行数を返す
で、実現できそうな気がするのですが、
・配列から任意の文字列を含む行を探す
・別の文字列を含む行を、特定の行(1で見つけた行)以降で探す
方法はないでしょうか。
0711704
04/09/26 19:01:06ID:???2行ーッ!!!??
バチーリですた。
なちじょあ ◆yEbBEcuFOU マスター。
でも何やってるかびっくりするぐらいさっぱりです。
…<div align..> と、</div> 行を含んだものを出すには、どこを
どういじればよいのでしょうか。
現状--------------------------------------------
open(IN, "bin.html") || die "cannnot open!\n";
@text = <IN>;
$text = join('', @text);
$text =~ s|.*<div align="left">(.*?)</div>.*|$1|s;
print $text;
---------------------------------------------------
0712704
04/09/26 19:19:13ID:???$text = join('', @text); #''という文字列で区切って挿入。1行に纏めたんスねマスター。
$text =~ s|.*<div align="left">(.*?)</div>.*|$1|s; # ~ <^-^;???
0713nobodyさん
04/09/26 19:24:45ID:???「出力されてるのは <div 〜>(かっこの中身ですか)</div> ?」と思いながら
ぐりぐりしてみましょう。
というか、正規表現って何なのさと思いながら激しく調べてみてください。
0714704
04/09/26 20:35:15ID:???↑この行がさぱりです。
$text =~ s :$textの中身を置換する
| :or
.* :拡張子は問わない??
まず、なぜ 置換とそれ以降がorで分けられるのでしょうか??
0715704
04/09/26 20:51:59ID:???.*<div align="left">(.*?)</div>.*
これの意味がなんとなくわかりますた!
拡張子全然関係ないですねm(_ _;)m
-----------------------------------------------------------------
任意の文字列の後に<div align="left">がきて(?不明)<div>がきて、
その後にまた任意の文字列
-----------------------------------------------------------------
で、あっていますか?
0716nobodyさん
04/09/26 21:02:51ID:???0717nobodyさん
04/09/26 23:16:27ID:???外部ファイルの、改行の3つ目まで読み込む
にはどんな手順を踏めば出来ますか?
0719717
04/09/27 00:18:45ID:???0721nobodyさん
04/09/27 01:15:18ID:???http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k08.htm
これを読みながら逆上がり10回出来ればわかると思うよ
0722nobodyさん
04/09/27 01:23:16ID:???0724nobodyさん
04/09/27 01:31:14ID:???サリー・セイント・フォードか。
これは偶然なんですか!
0725nobodyさん
04/09/27 01:31:37ID:???0726nobodyさん
04/09/27 01:36:46ID:???1000行なんかなにも気にする必要ないぞ?
ファイルサイズ 50k とかでしょ?
10万行とかいかない限り、気にしてもしょうがない。
0727nobodyさん
04/09/27 04:34:02ID:77N/SlLLPerlのデータ受け取りに関しての質問です。
<input type="hidden" name="com" value="$in{com}">
の$in{com}部分に、改行を入れても、一般的に問題はないでしょうか?
htmlに
<input type="hidden" name="com" value="あ
い
う
え
お
">
のように記述しています。
あ\nい\nう\nえ\nお\n
のようにデータを受け取ってくれますでしょうか?
0728nobodyさん
04/09/27 04:42:38ID:???0731nobodyさん
04/09/27 10:56:24ID:???0732nobodyさん
04/09/27 11:16:10ID:???とりあえずこんなとこだろう
opendir(DIR, $some_dir) || die "can't opendir $some_dir: $!";
@filenames = readdir(DIR);
closedir DIR;
0734nobodyさん
04/09/27 15:47:48ID:???(Googleの次のX件とかみたいの)どういう風に組めばいいのかさっぱりわかりません。
参考になりそうなソースとかないでしょうか?
0735722
04/09/27 16:50:03ID:???出てきた出てきた^^;ググルって要らないサイトばっかマッチする糞検索鯖だと思ってました(ショボーン
>729>730
ものすごく簡潔で驚きました^^;;;
0736nobodyさん
04/09/27 17:01:46ID:???0737nobodyさん
04/09/27 17:30:22ID:???0738nobodyさん
04/09/27 18:11:02ID:???帰れ^^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;
0739nobodyさん
04/09/27 18:48:57ID:???サブルーチンからハッシュを返す方法がどうにもわかりません。
いろんなサイトをググってみたのですが、実際に試しても上手くいませんでした。
---------------------------------------------
%hashA = ("aaa","0","bbb","1","ccc","2") ;
%hashB = &hash_return() ;
print %hashA ;
print "\n";
print %hashB ; #←渡ってないので何も表示されない・・・(´・ω・`) ショボーン
sub hash_return{
%hoge = ("aaa","0","bbb","1","ccc","2") ;
return \%hoge;
}
---------------------------------------------
0740nobodyさん
04/09/27 19:02:52ID:???%hoge = ("aaa","0","bbb","1","ccc","2") ;
return \%hoge; #★★★ この \ を取れクズ野郎 ★★★
}
0741nobodyさん
04/09/27 19:06:26ID:???0742nobodyさん
04/09/27 19:06:40ID:???うざい氏ね^^;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;
:イラネ(・△・)
0744nobodyさん
04/09/27 19:11:13ID:???教えて!偉い人!
0745nobodyさん
04/09/27 19:32:56ID:j0XZIPtZ$#hoge だとエラーになります
0747nobodyさん
04/09/27 20:34:39ID:???100の1
1000の2
100の3
500の1
1000の1
500の2
100の2
みたいに数字と日本語が混ざったデータを
100の1
100の2
100の3
500の1
500の2
1000の1
1000の2
にしたいのですが、<=> cmp どちらでやってもこのようになりません(当たり前なんですが…)。
どうやったらこんなソートが出来ますか?
0748nobodyさん
04/09/27 20:44:35ID:kQMIC0Dwmy $seieki;
$seieki++;
print "$seieki";
}
とやると毎回、$seiekiが1になります。
my $seieki;
の部分、一般的には、$seieki=0;とするのが普通でしょうか?
my〜は数値をリセットするためにも使用するものなのでしょうか?
詳しい方がいたら教えて下さい。
0749747
04/09/27 21:01:06ID:???100の1
1000の2
を
100.1
1000.2
のように日本語の部分を小数点にしてソートしてあとで小数点を日本語に戻しました。
もっといい解決策がありましたら教えてちょ。
0751nobodyさん
04/09/27 21:40:41ID:???map "$_->[2]\n",
sort { $a->[0] <=> $b->[0] || $a->[1] <=> $b->[1] }
map [ /(\d+)/g, $_ ],
qw(100の1 1000の2 100の3 500の1 1000の1 500の2 100の2);
>>748
my $count;
foreach (@data) { $count++; print $count }
print 1..@data;
0753nobodyさん
04/09/28 05:45:24ID:pXXg1bBk0754nobodyさん
04/09/28 05:54:35ID:???0755nobodyさん
04/09/28 06:00:08ID:???真中のは時計のスイッチだぞ。間違えんな
0756nobodyさん
04/09/28 06:09:05ID:B5P8Vfsa現在win2kにてActivePerl-5.8.4.810-MSWin32-x86.msi
を入れて使っています。
9桁以上の10進数正数(例えば36089479532304)を
16進数変換したいのですが
$a = sprintf "%X", $a;
のようにすると8桁までしか変換できず、オーバーフローした場合はFFFFFFFFとなってしまいます。
どうにか9桁以上を変換できないものかと色々検索したのですが
みつからず・・お力を貸していただけないでしょうか。
アドバイスいただければ幸いです。
0757756
04/09/28 08:06:42ID:???sub Hex {
my $val = shift @_;
my @hx = (0..9,'A'..'F');
my $hex;
while ($val > 15) {
$hex = $hx[$val % 16].$hex;
$val = ($val - ($val % 16)) / 16;
}
$hex = $hx[$val]. $hex;
return $hex;
}
先ほどの9桁以上の10進数→16進数変換はこのような形でなんとか
いけました。
そしてもう一つの問題が・・
巨大整数計算なのですが
3164311364の二乗 3164311364**
みたいなことをやると
1.00128664083395e+019
のような形になってしまいます。
use bigint;
や
use Math::BigInt;
も宣言してみたのですが結果は同じです。
きちんとした整数を出してやるにはどうしたらよいのでしょうか。
1.00128664083395e+019に関してはオーバーフローしている部分が
019にはみ出しているのかと思い、
19100128664083395としてみたのですが
これでは二乗の答えになっていません。
0758あぼーん
NGNG0759あぼーん
NGNG0761nobodyさん
04/09/28 13:20:00ID:???0763nobodyさん
04/09/28 17:00:49ID:???「1.00128664083395e+019」とは、「1.00128664083395×10^19」の意味だ。
BigIntは使い方が間違っているのでは?
次のようにすると、「+10012866408339540496」と出力される。
use Math::BigInt;
my $x = Math::BigInt->new('3164311364');
print $x->bpow(2);
0764nobodyさん
04/09/28 17:02:40ID:???(該当件数 / 合計件数)をパーセントで表示しようと思っています。
例えば、合計3件の該当1件ならば33.33333%となります。
# 小数点第二位での四捨五入処理
$percent = ($count / $total * 100);
$percent = $percent * 10;
$percent = (int ($percent + 0.5) / 10);
こうすると、33.3%となりますが、これを3回繰り返しても合計100%にはなりません。
割り切れない数(無限小数でしたっけ?)を含むパーセンテージが存在する場合、
合計を100%にするということは不可能なのでしょうか。
0766nobodyさん
04/09/28 20:15:27ID:???ってなにが有ったんだ?(w
0767nobodyさん
04/09/28 20:52:52ID:???perl4とunicode.plとjcode.plを利用しています
(jcode.pmの利用許可が下りませんでした)
#!/usr/local/bin/perl
require './unicode.pl';
require './jcode.pl';
$googleurl = "%E5%AE%9F%E9%A8%93";
$teststr = "実験";
$googleurl =~ s/%[0-9A-F][0-9A-F]/pack("C",hex($1))/eg;
@googleuni = &unicode::UTF8toUTF16($googleurl);
$googleurl = &unicode::u2e(@googleuni);
print "$googleurl\n";
としているのですが何も出力されません
0768nobodyさん
04/09/28 21:32:44ID:???unicode.pl というのがコレの事なら
http://www.onicos.com/staff/iz/release/#unicodepl
Perl4 では動かない。
0769nobodyさん
04/09/28 21:52:17ID:???電話番号の数字をある規則で文字に置き換えるプログラムとかいう
お題だったんだけど、サンプルに電話番号のような文字列が含まれ
ていたのであぼーんされたようです。
0770767
04/09/28 22:22:13ID:???/usr/binが先にパス通っててそっちでperl -vしてました・・・
0771nobodyさん
04/09/28 22:25:55ID:YPzWwkuAを書こうと思ってます。
フォームから簡単なスクリプトを送るとその結果をブラウザに
返すようなプログラムです。
で、perlのスクリプト上でperlのスクリプトを評価するような
処理をしなければいけないのですが、どのように実現すればいいでしょうか?
0772nobodyさん
04/09/28 22:48:54ID:???0773nobodyさん
04/09/28 23:06:43ID:???× $googleurl =~ s/%[0-9A-F][0-9A-F]/pack("C",hex($1))/eg;
○ $googleurl =~ s/%([0-9A-F][0-9A-F])/pack("C",hex($1))/eg;
0774nobodyさん
04/09/28 23:13:04ID:???一定時間に@5人に1人が書くときA100人に1人が書くとき(チャット) で教えてください
0775機種依存文字を使う奴は氏のう
04/09/28 23:18:25ID:???2. 読むときCGIによる記録ファイル読み込みではなくHTML出力にして、書き込む時だけCGIを使う
0776nobodyさん
04/09/29 00:22:34ID:???だがしかし、ファイルが壊れるリスクを考慮すると、書き込み時の処理はシンプルにしたいところ。
よって掲示板には有効だが、ほいほい書き込みが発生するチャットには向かない。
0777774名無し
04/09/29 00:39:19ID:???すみません
>776
ありがとうございました
0778nobodyさん
04/09/29 03:57:33ID:6EqyI/FO(2)print "〜";文をなるべく1つにまとめる
みなさんはどちらを優先しますか?
またどちらの方が負荷は減るでしょうか?
詳しい方、意見お聞かせ下さい。
0779nobodyさん
04/09/29 04:50:59ID:???アルゴリズムの改善を汁
0780nobodyさん
04/09/29 09:15:35ID:???CGIで一番負荷がかかるのはperl自身のプロセス起動
次はファイルの入出力
代入だのprintだのは誤差の範囲
0782nobodyさん
04/09/29 09:51:57ID:???と言うか、ファイル入出力を見直して軽く出来たら書いた人間が糞。
と言うわけで>>781 mod_perl使えw
0783nobodyさん
04/09/29 10:24:02ID:???掲示板程度のスクリプトでも長いこと動かしていると、プロセスの
メモリ占有量が馬鹿みたいに膨れ上がる。
グローバル変数はほとんど使わないように組んでるし、
my で宣言したものはスコープを外れた時点で解放して欲しいんだけど、
ちゃんと領域を回収してくれてないのかな。
そういえばPerlのGCって意識したことなかった。
0784nobodyさん
04/09/29 10:24:05ID:???全てのPerlで書かれたCGIが
use strictしてあって
動いてたなら
世界はもっと平和だったのに
0785nobodyさん
04/09/29 10:26:47ID:???肥え太った 5.6.x 以降を使わず 5.005_0x を使うと少しは
軽くなるかも知れない。Perl4 スタイルな小規模スクリプト
がメインなら、無闇に Apache::PerlRun で走らせるよりも
CGI にした方が軽い場合もある。
まぁ全てはケースバイケースだから、Apache Bench で
計るなりして最適な選択を。
0786nobodyさん
04/09/29 10:30:04ID:???0789nobodyさん
04/09/29 11:09:44ID:???while(<TAKESI>){
($a,$b,$c,$d,$e,$f,$g,$h,$i,$k)=split(〜);
いろいろ表示
}
こういう処理がありますが
my($a,$b,$c,$d,$e,$f,$g,$h,$i,$k)=split(〜);
このようにmyを付けた方が処理は早くなるのですか?
みなさんは付けてますか?
0790771
04/09/29 11:11:05ID:2geLnUuHありがとうございます。
evalで検索かけたら
http://oshiete1.goo.ne.jp/kotaeru.php3?q=908814
というページも見つかりました。
0791nobodyさん
04/09/29 11:18:50ID:???http://www5a.biglobe.ne.jp/~n_rieko/perl/9.htm#9-3
0792nobodyさん
04/09/29 11:22:47ID:???こういうのってperl4でも使えるのかな
使ったら出来ちゃってるけど
0794nobodyさん
04/09/29 13:11:59ID:???は?myはlocalより早いってとこ?
シンボルテーブルに登録されないから、グローバル変数や
local変数より早いって理解でいいでつか?
0795nobodyさん
04/09/29 13:45:38ID:???処理が入るのでさらに遅いのです。
0796nobodyさん
04/09/29 14:05:03ID:???ひょっとしてここの人達って、ループ中のサブルーチン呼び出しを
インライン展開しなくちゃいけないくらい激しくチューニングしてるわけ?
>>793
mod_perl の問題じゃないんだとしたら、Apache::Registryモジュールのせい?
0797nobodyさん
04/09/29 14:15:59ID:???0799nobodyさん
04/09/29 14:51:18ID:???0800nobodyさん
04/09/29 16:30:57ID:???Perlのコンパイラって何言語で書かれてるの?おまら知ってる?
そもそもどうやってプログラムがうごくのかよくわかあんよな。
CGIいくら組んでも根本的な部分をしらないとだめだな。
ところでCSV形式って区切り子がカンマでしょ?まあ名前の通りだけど。
でも改行も区切り子になるの?
a,s,d
s,d,f
↑これとかってdとsがくっついたりしないの?まあPerlでは
open CSV "hoge.csv";
while ( <CSV> ){
chomp;
printf "大地%s 空%s 海%s <br>\n" ,split/,/;
}
ってchomp意味内やン家!なんか久しぶりにperlのコーディングでもしよ尾も運だすので
カメハネml?
0802nobodyさん
04/09/29 23:53:39ID:???C
http://www.google.co.jp/search?q=perlembed&sourceid=firefox&hl=ja-JP&start=0&start=0&ie=utf-8&oe=utf-8
http://rcl.hp.infoseek.co.jp/perl.html
0803nobodyさん
04/09/30 10:21:11ID:???0804nobodyさん
04/09/30 10:30:29ID:???0805nobodyさん
04/09/30 12:12:21ID:???テキストフィールドに書かれた文字をファイルに保存しようと思っているのですが、
作成されたファイルを開くと、ファイルの先頭部分にNULL文字がセットされてしまいます。
$text = $FORM{"text"};
$text =~ s/\r\n|\r|\n/\n/g;
open (DATA, ">>$filename");
flock (DATA, 2);
seek (DATA, 0, 0);
print DATA $text;
truncate (DATA, tell (DATA));
close (DATA);
chmod (0666, $filename);
環境は ActivePerl5.6.1 IE6.0SP1 AN HTTP Daemon 1.42k でテストしていて、
ローカルですと正常にファイル保存がされるのですが、鯖に上げるとファイル先頭部分にNULL文字がセットされてしまいます。
どなたか考えられる原因をご存知の方はいないでしょうか。
0806nobodyさん
04/09/30 12:40:43ID:???ご存知ではないので一般論で。
まず$textにNULL文字が入っていないか切り分けよう。
printする前に、$text =~ s/\0/<null>/g; とかしとけば
もしはじめからNULLが入っていれば見えるようになるはず。
あともう1つあやしいのは >> で開くとO_APPENDになるので、
OSによるかもしれないがどこにシークしていても必ず書き込み
はファイルの末尾からになってしまう。その辺の問題かも
しれない。
はじめから'>'で開けばその問題はないが、省略してるが実は
読み出しもやってるとするとその手は使えないので、長さ0に
truncateしてからprintするか、sysopen使って
sysopen(DATA, $filename, O_RDWR|O_CREAT) or die;
みたいにすれば回避できると思う。
0807nobodyさん
04/09/30 12:54:35ID:???0808805
04/09/30 13:12:09ID:???補足になりますが、テキストフィールドの内容をファイルに新規保存するだけのものでして、読み出しは行いません。
また、ローカルでテストする際のOSはWin2000Proです。
$text =~ s/\0/<null>/g;を試してみたところ、<null>という文字列は入りませんでしたので、入力内容にNULL文字はないようです。
>>でopenしてseekは無意味と言うことで、seekを外してみましたが、結果は変わりませんでした。
また、>でopenしてみたところ、正常に動作しました。
>>806,807氏、ヒントをありがとうございました。
0809なちじょあ ◆yEbBEcuFOU
04/09/30 14:34:52ID:???0810なちじょあ ◆yEbBEcuFOU
04/09/30 14:35:18ID:???0811803
04/09/30 14:56:10ID:???そうですか、友達に負担がかかるからやめろと言われましたが、騙されたようですね_no
もう一つ質問ですが、kent-webのCGIはダメポと聞きますが、Perlとしてどこがダメポなんですか?
0812nobodyさん
04/09/30 15:05:59ID:???出力されるHTMLのインデントとかはもう見てらんないな。
Perlについては詳しく無いから↓の人詳細よろ
0815811
04/09/30 15:58:51ID:???トンクス!なるほど、たしかにすごいHTML…
>813
スマソ
>814
そうでつか
0816nobodyさん
04/09/30 16:01:47ID:???お前向けのスレはここだ。
KENT WEB 総合スレ Part2
http://pc5.2ch.net/test/read.cgi/php/1078991985/
0817nobodyさん
04/09/30 18:09:03ID:???ただしソースは見るなよ
0818nobodyさん
04/09/30 20:00:11ID:???0819nobodyさん
04/09/30 20:00:36ID:???久しぶりにyybbs見たけど相変わらずザルだね
スパゲッティー度上がってるし
0820nobodyさん
04/09/30 22:21:44ID:ByT9cFMWそのモジュールの中でしか使わない関数っていうことでよかったですよね?
0823nobodyさん
04/09/30 22:59:24ID:???まあ820-821の理解で十分じゃね。
もともと印程度のいいかげんなものだし、
なんやかんやで読んじゃったりするし。
0825nobodyさん
04/10/01 02:57:04ID:???というのをform要素内の最後尾につけて、IDに対してののアンカーにしたいんですが、
〜foo=bar#hoge
とならず、
〜foo=bar%23hoge
とバケてしまいます。
どう記述したらバケずにできますか?
0826nobodyさん
04/10/01 03:14:42ID:???0828nobodyさん
04/10/01 10:26:24ID:???以下のようにしても結果が表示されません。表示する変数には実行結果の最後の行だけが入っている模様です。
他の方の質問と比べて低LVで申し訳ありませんが、お助けください_no
<html><head><title>TraceRoute</title></head>
<script language = "PerlScript">
sub button1_click{
$form = $window->document->form;
$host = $form->host->{'value'};
@traceroute = `tracert $host`;
$window->document->write("@traceroute");}
</script>
<body>
<h2>TraceRoute</h2><hr>
<form name="form"><table>
<tr><td>IPアドレス or ドメインネーム:</td>
<td><input type="text" name="host" size=50 value=""></td></tr>
</table><p>
<input type="button" name="button1" value=" 実行 " onclick="button1_click()">
</p></form></body></html>
0829nobodyさん
04/10/01 11:09:56ID:???アンカーくっつけるためのもんじゃないから無理
0830nobodyさん
04/10/01 11:49:58ID:???クライアントプログラミングはム板に逝ったほうがいい
0831nobodyさん
04/10/01 11:57:33ID:???JS使わんと無理ですか?
0833825
04/10/01 12:56:20ID:???0834nobodyさん
04/10/01 13:35:55ID:???それは化けているのではないし、Perl の問題でもないのでスレ違い。
http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.13.4.1
http://e-words.jp/p/r-ascii.html
http://www.din.or.jp/~ohzaki/perl.htm#JP_Escape
http://pc5.2ch.net/test/read.cgi/php/1095633323/
0835nobodyさん
04/10/01 13:46:06ID:???選択されたファイルがバイナリファイルであればエラーを返す処理をしようと思っています。
しかしながら、テキストファイルにもかかわらずバイナリファイルと判定されてしまい、
ファイルを展開できないことがあります。
opendir (DIR, "."); # カレントディレクトリ
while ($filename = readdir (DIR)) {
if (-d $filename) { # ディレクトリ
next;
}
if (-B $filename) { # バイナリ
next;
}
push (@files, $filename); # ファイルの一覧
}
全てが半角英数字のテキストの場合は、テキストファイルであると正常に判定されるようです。
選択したファイル内に2バイト文字があると-Bでは正確に判定できないのでしょうか。
0837nobodyさん
04/10/01 14:42:32ID:???わかんねぇカスはすっこんでろよ(pgr
>>835
JPerlが使えるのならば、そちらだと確か正常に動いたと思う。
ファイルを展開するんなら、ファイルを読みこんだ後、
表示させる前にNULL文字のチェックをしてみるのはどうだろうか。
拡張子を制限するとか、対策は色々あると思うぞ
0838nobodyさん
04/10/01 15:00:34ID:???http://perldoc.com/perl5.8.4/pod/func/-X.html
シングルバイト文字圏の人が言う「plain text」は、マルチバイト文字は考慮
していない。use encodings 環境下とかでどうなってるかは知らないけど。
0839nobodyさん
04/10/01 18:40:00ID:???0840nobodyさん
04/10/01 19:45:04ID:???http://www5a.biglobe.ne.jp/~n_rieko/perl/4.htm
0842nobodyさん
04/10/02 04:12:13ID:???配列を後ろから読む、というような。
0845nobodyさん
04/10/02 06:14:55ID:???ということをしたいのですが…。出力したときにjavascriptを埋め込むとかでしょうか。うーん。
0846nobodyさん
04/10/02 06:31:48ID:iwLkYg8HCGIはInetpub/cgi-bin/に置いています。
Prelのバージョンは多分5.6だと思います。
Perlへのパスは#!/user/local/bin/perlにしてます。
どうすればよいでしょうか?
ちなみにPerlインストール後は設定を何もいじってません。
よろしくお願いします。
0847nobodyさん
04/10/02 06:56:22ID:???IISの設定は知らないがとりあえずPerlのパスは
#!C:/Perl/bin/perlだろ
#!/Perl/bin/perlでもいいかも
0849nobodyさん
04/10/02 08:03:38ID:iwLkYg8Hhttpdってどこをどのように変更するのでしょうか?
よろしくお願いします。
0850849
04/10/02 08:45:47ID:iwLkYg8H0851nobodyさん
04/10/02 08:55:46ID:xWycr4I2ttp://www.din.or.jp/~bigstone/cgilab/cgitips/iis.html
関係ないけどミケネコさんてお亡くなりになったのね。超ショック。
ご冥福をお祈りします。
0852nobodyさん
04/10/02 09:12:09ID:???0853nobodyさん
04/10/02 09:15:32ID:???関係ないのでsage
0854nobodyさん
04/10/02 09:36:37ID:???>>852-853
全ての研究員の中の人をお一人でやっておられたという説もある。
コンテンツはまた公開されそうな気配。
http://pc5.2ch.net/test/read.cgi/hp/1092690398/121
0855849
04/10/02 09:55:27ID:iwLkYg8H返信ありがとうございます。
早速サイトを見ます。
0857nobodyさん
04/10/02 19:17:38ID:IDTr6xb8apache2
/usr/bin/perl
↑の環境でperlを使ってるのですが、最近急に掲示板の表示速度が
激しく遅くなりました。
普通のhtmlは普通に表示される、servletも動いてますがそちらも普通。
perlの掲示板のみが激しく遅いのですが、原因追及の為にどこを
調べたらいいでしょうか?
0858nobodyさん
04/10/02 19:33:14ID:???アクセス数,データの量等が影響するので、原因を特定するには情報不足だけど。多分設計の問題。
ありがちなのが、ログ等のデータをすべてメモリ上(配列など)に取り込んでるタイプの掲示版。
プロファイルとってみるといいよ。とりあえず続きは他のスレでどうぞ。スレ違い
0859nobodyさん
04/10/02 20:09:46ID:IDTr6xb8レスどうもです。
どこのスレで聞いたらいいでしょうか?
cgiは以前は普通に動いてたんです。それからデータサイズも大して
変わってないので原因がよくわからないんです。
何もいじってないですし・・・
0862nobodyさん
04/10/03 00:49:57ID:???でプロファイルとって、dprofppで解析か。
perlつーのは至れり尽せりだな。
0863nobodyさん
04/10/03 01:05:09ID:lnyRtEhYこれって何の略で具体的にどういう役割なんですか?
0866nobodyさん
04/10/03 03:57:51ID:???0867nobodyさん
04/10/03 04:22:11ID:???行単位にはならないだろうな
一旦普通に全部読み込んでから改行コードで分割しる
0868866
04/10/03 04:25:29ID:???ありがとうございました
0869nobodyさん
04/10/03 07:12:49ID:???0879nobodyさん
04/10/03 15:41:21ID:???0880nobodyさん
04/10/04 21:13:24ID:???〜or〜と同じですか?またJAVAのtry catchと同じですか?
0881nobodyさん
04/10/04 21:28:29ID:???0882nobodyさん
04/10/04 23:06:02ID:YvzQlu9kコードや名称、取引値、前日比等を変数に取り出すには
どうすれば出来ますか?
http://quote.yahoo.co.jp/q?s=9646+9654+9684+9752&d=v1&k=c3&h=on&z=m
0886nobodyさん
04/10/05 04:55:02ID:???いや、それは誰でもできるんじゃないか?
ライブラリや関数を使えば。
perlもphpのように、ローカルファイルとネット上のURLのファイルを
表面的にでもシームレスに扱えるようにしてほしい。
LWPとか使うこと自体がだるいんだよ・・・
0887nobodyさん
04/10/05 05:20:22ID:???あいつには無理だろ?
perlで
open IN,'http://2ch.net';とかしそうだし
0888nobodyさん
04/10/05 07:28:09ID:9Q+F9VOEにアクセスした時に0001の画像を。
0002にアクセスした時は0002の画像を表示させたい思って、
if($FORM{'mode'} eq "0001"){$img = "01.gif";}
elsif($FORM{'mode'} eq "0002"){$img = "02.gif";}
elsif($FORM{'mode'} eq "0003"){$img = "03.gif";}
else{$img = "04.gif";}
print "<img src=\"$img\">";
と書いたんですけど出来ませんでした…。
どの番号にアクセスしても
04.gif
の画像が出てしまいます。
どうやったら上手くいくでしょうか?
お願いしますm(__)m
0889nobodyさん
04/10/05 07:44:38ID:/XKjVdNTとりあえずは、ダウンロードツールとかブラウザでHTMLを取得して
ローカルファイルにしたものを処理対象にしようとおもってます
ソケットオープンしてGETすればできるんでしょうか?
0890nobodyさん
04/10/05 07:54:11ID:???0891nobodyさん
04/10/05 08:53:01ID:???0894888
04/10/05 11:21:13ID:9Q+F9VOEmodeを使わないでそのまま$ENV{'QUERY_STRING'}と数字だけを使ってやった方が簡単でしたね。
ありがとうございましたm(__)m
0895nobodyさん
04/10/05 12:05:45ID:???次のようなエラーになってしまいます。
'c:\inetpub\wwwroot\cgi-bin\apply.cgi' script produced no output
webサーバーでは正常に動いているのですが、IISでディレクトリの設定を
変える必要があるのでしょうか?
IIS開いてみたけどよく分かりませんでした。
どこを変えればよいでしょうか。
※テキストファイルを書き出すプログラムを書いています。
よろしくお願いします。
0896nobodyさん
04/10/05 12:20:39ID:???0897nobodyさん
04/10/05 13:37:28ID:???例えばこのようなフォルダ構造がある場合、
index.cgiが全ディレクトリ内のファイルの一覧を取得する事は可能でしょうか。
[root]
├ index.cgi
├ [data]
│ ├ [data_bak]
│ │ └ log.log
│ ├ data.log
│ └ data2.log
├ [file]
│ ├ file.txt
│ └ file2.txt
└ [img]
├ img.gif
└ img2.gif
index.cgiでreaddirで一覧を取得し、その中にディレクトリがあれば、その中の一覧も取得し、
さらにその中にディレクトリがあれば・・・といった形の構造にしたいのです。
0898nobodyさん
04/10/05 13:42:52ID:???どうしたの?
0900nobodyさん
04/10/05 14:15:07ID:???>可能でしょうか。
可能でしょう。
>・・・といった形の構造にしたいのです。
そういった構造で、可能でしょう。
プログラムとは、といった構造だと出来るのではないか、可能ではないか、
と考えて作り、動かしてみて、思った通りに行かなければ、
なぜそう行かないのかを探り、修正し、、、、
といった積み重ねで出来上がるものなのです。
0902nobodyさん
04/10/05 14:37:12ID:???だから、実際書いて見てつまずいた所を
聞いてこなきゃ進まないわな。
可能ですか?…といった構造にしたいのです。
なら「可能です」で終わるよ。
たぶんこれ期待した答えじゃないよな。
といって具体的な質問でもないとすると、
そこまで考えてて、一から教えろって話?
0903nobodyさん
04/10/05 14:43:17ID:???0905nobodyさん
04/10/05 14:54:11ID:???一番いいのってなんだろ
0906nobodyさん
04/10/05 14:57:47ID:???その辺のヘボいBBSの名前欄とかにタブ文字入れるとログが壊れて面白いなw
0908nobodyさん
04/10/05 15:04:51ID:???0909nobodyさん
04/10/05 15:09:13ID:???0910897
04/10/05 15:56:46ID:???サブルーチンの中でサブルーチンを呼んで、、、という方法だったのですね。
ヒントを下さった>>899氏、ありがとうございます。
0911nobodyさん
04/10/05 16:53:35ID:eG43PgsaBEGIN{
if ( $ENV{'REMOTE_ADDR'} eq '127.0.0.1' ) {
push @INC, 'C:\Program Files\Apache Group\Apache\htdocs\public_html\cgi-bin';
}else{
push @INC, '/home/public_html/cgi-bin';
}
}
サーバでもローカルでも問題なく動かせるようにするために、自作のモジュールの場所を
上記のようにやってみた。しかしローカルでエラーが出た。多分プロンプトからやると
アドレスがおかしなことになるからだと思う。
どうやればいい?
0912nobodyさん
04/10/05 17:11:26ID:???BEGIN {
push @INC, defined $ENV{'REMOTE_ADDR'} && $ENV{'REMOTE_ADDR'} ne '127.0.0.1'
? '/home/public_html/cgi-bin'
: 'C:\Program Files\Apache Group\Apache\htdocs\public_html\cgi-bin'
}
0913911
04/10/05 17:19:18ID:eG43Pgsaそうかdefinedか。
しかし&&ではなく||じゃないか?
まあ俺が間違ってそうだからテストしてみる
0914911
04/10/05 17:23:40ID:eG43Pgsa&&だとローカルで成功
||だとサーバで成功
どちらも不完全・・・orz
0915911
04/10/05 17:29:18ID:eG43Pgsaサーバでもできるっていうのはサーバにシェルでつないで
perl -c
でっていうことなんだけど、それは無理かな?
判断基準がないのかな?REMOTE_ADDRだけでは無理だよね。
0916nobodyさん
04/10/05 17:31:40ID:???0917nobodyさん
04/10/05 17:33:49ID:???じゃあ
$ENV{'DOCUMENT_ROOT'}
とか使ってみたら?俺の場合はローカルではc:始まりだけどサーバでは/usr始まりだから
それで簡単にできるけどね。
0918nobodyさん
04/10/05 17:35:13ID:???0920nobodyさん
04/10/05 17:38:32ID:???コマンドプロンプトにPerlの構文を直接打っても機能するということを
もききにはさんだのですが、どうやればよいのでしゅか?
0921nobodyさん
04/10/05 17:42:52ID:???0922920
04/10/05 17:46:37ID:???ありがとうございます。できましたけど失礼しますm(_ _)m
「ガッ!」
ところで10行くらいになる場合はどうやればいいのでしょうか?
print -e "
ここdEnterを押すと何故かキャンセルされてしまうのですが。
あと print =e "
このダブルクォートは他の記号で代替できませんか?
0923911
04/10/05 17:56:43ID:eG43Pgsaやっぱ無理かな?
>>917-919
自演?
コマンドプッロンプオ上では環境変数持ってないからそえではだめなのよね。
0924nobodyさん
04/10/05 18:01:54ID:???> ところで10行くらいになる場合はどうやればいいのでしょうか?
何が10行くらいになるのよ?perlのコード?出力?
perl -e "print qq/a\n/; print qq/b\n/; print qq/c\n/"
> このダブルクォートは他の記号で代替できませんか?
あんたの使ってるシェルによる。シェルの話は板違い。
0925nobodyさん
04/10/05 18:02:35ID:???0927920
04/10/05 20:00:39ID:???windowsXPです。
>何が10行くらいになるのよ?
つまり
print 1;
print 2;
print 3;
print 4;
のような時に見栄えのために改行をしたいのですが、-eでやるとenterは実行になってしまって
改行にはなりません。
いわゆるmysqlでのEnterキーの昨日を求めています。
0928nobodyさん
04/10/05 20:08:22ID:???C:\hogehoge\>perl
print "(゚д゚)";
print "<";
print "シメジ\n";
^Z ← Ctrl + Z
(゚д゚)<シメジ
C:\hogehoge\>
> いわゆるmysqlでのEnterキーの昨日を求めています。
( ゚д゚) ?
0931nobodyさん
04/10/05 22:26:00ID:???(いわゆるテーブルのデザインを崩す文字)
は正規表現でどう表せますか?
ピックアップしてみましたが
\ ^ . $ * ? | ( ) [ ] { }
0-9 a-z A-z
これで全部でしょうか?
0932nobodyさん
04/10/05 22:30:16ID:???0933nobodyさん
04/10/05 22:52:49ID:???HTML やブラウザの話は Web 制作板で。
http://pc5.2ch.net/hp/
0934nobodyさん
04/10/06 00:12:28ID:???perl では ASP で言う ALL_HTTP に相当するものは無いんですか?
仕事のテストの都合でクライアントのリクエストを画面に出力したくて
print <<EOF;
Content-Type: text/html
<HTML>
<HEAD>
</HEAD>
<BODY>
$ENV{'ALL_HTTP'}
</BODY>
</HTML>
EOF
↑のようにコードを書いたんですが、何も出力されなかったので。
どなたかお知恵を貸してください。お願いします。
0935nobodyさん
04/10/06 00:25:27ID:???お騒がせして申し訳ありませんでした…。
0936nobodyさん
04/10/06 00:30:44ID:???print "ここのURLは$testtest.cgiです";
みたいな時にコンパイラが間違わないように変数名をはっきりさせるにはどうすればいいですか?
print "ここのURLは{$test}test.cgiです";
勘でやりましたらエラーになりました;
0938nobodyさん
04/10/06 01:18:41ID:???0940nobodyさん
04/10/06 02:02:59ID:???しかも後出しで日亜ドキュメントとか・・・
0941nobodyさん
04/10/06 02:06:12ID:???0942nobodyさん
04/10/06 07:17:50ID:???>>936
print "ここのURLは${test}test.cgiです";
0943nobodyさん
04/10/06 08:07:40ID:JNRSDhvAscript produced no outputでググってみたけど
参考となる答えが見つかりませんでした。
参考となるサイトありましたら教えてください。
おねがいします。
0945nobodyさん
04/10/06 14:44:13ID:qhjXxlYsどこのサバでも現在の日本時間を
2004 10 06 14:42:10
とかの形式にして
$timeに突っ込むにはどうすればよい?
sprintfの整形くだりはわかってるけど・・・
gmtime関数を使えばいいのかな?いくつ足すと日本時間だっけ?
0946nobodyさん
04/10/06 15:21:57ID:???>いくつ足すと日本時間だっけ?
スレタイ嫁
0947nobodyさん
04/10/06 16:49:16ID:???HTMLを取り込み、タグを全て取り払った上で、先頭から指定したバイト数(とりあえず94バイト)まで読み込みたいと思っています。
サイト内検索の結果表示に使う部分です。
# 本文の先頭から94バイトだけ抜き出す
$body = substr ($html, 0, 94);
# 先頭から切り出した本文の末尾に「...」を付加する
$body .= "...";
これで一応動くのですが、94バイト目がマルチバイト文字にまたがると、$bodyを表示させた際に、
(前略)例えば文字列があっ・..
このように、「・」が入ってしまいます。
一般の検索サイトでは正常に表示されていますが、
これはどのような処理を加えたものなのでしょうか。
0949nobodyさん
04/10/06 18:04:18ID:???現在時刻, 環境変数 TZ, リスト/スカラー コンテキストでreturn valueがかわる。
>> 947
例えば2バイト文字の場合は47文字でもいいという場合なら、
文字列の末尾をチェックして切捨てで。
マルチバイト文字を1文字としてカウントし94文字切り出したい場合は、
文字コードを考慮して切り出す必要がある。
perl5.8 以降, EUC-JPでコードを書いた場合:
use encoding 'euc-jp';
my $str = "こんにちは、世界";
print substr($str, 0, 5),"\n"; # こんにちは
0950nobodyさん
04/10/06 19:06:48ID:???自己フォローも含めて。
最後の1バイトのみのチェックだと、
3バイト文字(utf-8やEUC-JPの一部の文字)で困るかも知れない。
JISの場合、末尾のチェックは有効じゃなかったね、
JISの場合はチェックせずに、asciiに変更するエスケープシーケンスを挿入するだけでok
予め文字コードを決めて変換しておいて、
正規表現で文字列の末尾を置換する方法が簡単だと思う。
0951nobodyさん
04/10/06 19:08:02ID:???ここも読んでおけ
http://tohoho.wakusei.ne.jp/lng/r200005/00050101.htm
0952945
04/10/06 19:47:26ID:qhjXxlYsgmtime(time+32400)
この程度のことも回答できるやつがいないんだな
環境変数持ち出すアホもいるし。参ったよ
0955nobodyさん
04/10/06 20:12:34ID:???沢山のCGIで1個のjcode.plを共有使用するのと
各CGIに分けて置くのと、どっちが良いのでしょうか?
0957nobodyさん
04/10/06 20:39:41ID:???0959nobodyさん
04/10/06 22:44:43ID:???0960nobodyさん
04/10/07 01:17:27ID:i6snAbIv<input type="hidden" name="hogehoghgoehgoegh" value="ldkgjalkh">
name="(hogehoghgoehgoegh)"
括弧の部分だけを取り出してそれに対してまた正規表現をし、結果いかんで処理をわける。
っていうのをやりたい。
$str =~ /name="([^"]*)"/;
$str2 = $1;
if ( $str2 eq "test2 ) { undef $str }
みたいな感じなんだけどなんかやぼったい。もっと一発でできんまいかな
0961nobodyさん
04/10/07 01:31:23ID:???0962960
04/10/07 01:39:05ID:i6snAbIvまじで・・・・^^;
($str=~ /name="([^"]*)/)[0]
こんなのありなの?相当エロイ方なのね。
しかしスカラコンテキストで評価されそうなのに、リストで評価されるのね。
これってかなり便利だよね。つまるところメチャクチャ便利だよねw
ちなみにバージョンはいくつから使えるの?perl5.6以上なら大丈夫かな?
0963nobodyさん
04/10/07 01:46:48ID:???hoge||hage||hige
のうちのどれかに合うかをテストするにはどうすればいいですか?
正規表現より早いのがいいです。
例)
$a =~ /hoge|hage|hige/
はなしです。
0966nobodyさん
04/10/07 02:00:27ID:???まじめにうるう秒管理してると+ほげほげでずらしたら
うるう秒またいだときにおかしくなるんだよな。
実際にそういう運用してるシステムは身の回りでは
みたことないけどね(笑)
0968945
04/10/07 02:43:24ID:???$ENV{'TZ'} = "JST-9";
の後にlocltimeでやるほうがいいって話だよね?
この$ENV{TZ}って触ると他に支障でないっけ?
0969nobodyさん
04/10/07 02:46:40ID:???そうです。間違えてました。例題はあんなのですが、
実際は長さの異なる文字列で、初めに考えたのが
if (
$a eq "hoge" ||
$a eq "hige" ||
$a eq "hage" ){}
みたいなことを考えましたが、見た目が冗長なので。(実際はかなり長い文字列なので)
でもこれが一番処理速度効率はいいですよね?
これと同じレベルの効率でスッキリコーディングをしたいんです。
0970nobodyさん
04/10/07 02:52:14ID:???お前にゃ+32400がお似合い。他に影響のでない最強の解法があるんだからそっち使えよ。
>>969
> でもこれが一番処理速度効率はいいですよね?
なんでだよ。ベンチマークでもしてからの発言か?
0972nobodyさん
04/10/07 03:27:45ID:???急に目の色を変えてスレが加速する傾向があるようなので、そろそろ。
# 自分がそこまで気にしなくていいレベルのことしかしてないもんだから、
# みんなすごい世界に棲んでるんだなーといつも思う。
次スレの旬になりました。
テンプレ改定のご意見などがありましたらお願いしまーす。
前スレ293さん作・ここの抜粋CGIをテンプレに入れてみるのはどうだろと思って見に行ったら
404 Not Foundでした。
0973nobodyさん
04/10/07 03:49:50ID:???スレ違いの質問も多いから>>1で>>2のスレにうまく誘導できないかな。
以下の話題は>>2に専用スレがあります。みたいな感じで
あと、>>2などのリンク間違い、河馬屋二千年堂'sなど移転したところの訂正と
>>1-23に注意にする。
0974nobodyさん
04/10/07 04:35:33ID:???-- 案 --
いらっしゃーい、Perlのコーディングで困ってる人のスレです。
【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
>>2-3辺りの関連スレを確認してください。質問によっては専用スレがありますよ。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
過去ログ・関連スレ・お勧めサイトは >>2-10辺り。
-- 案 --
・リンク確認
CGIスレ11 http://pc2.2ch.net/test/read.cgi/php/1055597189/ ←移行寸前
総合質問スレ10 http://pc5.2ch.net/test/read.cgi/php/1086715675/ ←コレが現行
河馬屋二千年堂: http://homepage3.nifty.com/hippo2000/ ←移転先
こんな感じでどーでしょうか。というとこで、寝ます...orz
0978947
04/10/07 10:38:59ID:???全部SJISで記述していたんですけど、EUC-JPってこういう使い方があるんですね。便利そうです。
>>949氏の「文字列の末尾をチェックして切捨てで」というのはやり方がよくわからなかったので、
PerlメモのEUC-JPでのパターンマッチで文字単位で配列に入れて、
そこから指定文字分だけ取り出すという方法にしました。
0979nobodyさん
04/10/07 12:00:29ID:mI0cEt1Emy $s = sprintf "%d\% %d\%", 1, 2;
のように\でクォートしてみてもダメでした
0980nobodyさん
04/10/07 13:31:02ID:mSPbkycd%% って書くんじゃなかったかな
0981nobodyさん
04/10/07 15:24:10ID:/uixjfP8EUCで出力するにはどこをエンコードすればいいんですか?
$html->output();で帰ってきたものでいいんですか?
0982nobodyさん
04/10/07 15:37:24ID:???>1: 自分はこう言う事がしたい。
>2: それでこんな風にやってみたが・・・
>3: こんなエラーが出て上手く行かなかった。
やっぱり>>1読む質問者いねぇな
0983nobodyさん
04/10/07 15:41:43ID:/uixjfP82: $html->output();で返ってきたものをJcode.pmでエンコードしました。
3: 文字化けしました。
以上。
0984nobodyさん
04/10/07 15:50:06ID:???エコーデバッグ程度でどこで化けてるかわかるっしょ。どのタイプの文字化けか知らんが。
そんな情報じゃワカンネ。どっちにしても自己解決できる範囲だろ。直ったらレポよろ。
0985nobodyさん
04/10/07 15:50:44ID:???> 1: HTML::TemplateのテンプレートファイルをSHIFT-JISで保存したものをEUC-JPで出力したい。
> 2: $html->output();で返ってきたものをJcode.pmでエンコードしました。
> 3: 文字化けしました。
> 以上。
なめとんのかお前
0986nobodyさん
04/10/07 15:52:17ID:???0987nobodyさん
04/10/07 16:00:01ID:???>>1が9行以上だと読みこめない仕様の人がいるみたいだ
0989nobodyさん
04/10/07 16:03:19ID:???0990nobodyさん
04/10/07 16:03:57ID:???0991nobodyさん
04/10/07 16:07:23ID:???0992nobodyさん
04/10/07 16:19:58ID:???0995nobodyさん
04/10/07 18:50:57ID:???0996nobodyさん
04/10/07 20:11:37ID:???0999nobodyさん
04/10/07 21:33:03ID:???1000nobodyさん
04/10/07 22:33:39ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。