【Perl 】初心者コーナーPart8
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
01/10/24 14:11ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。
参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://ebi.2ch.net/test/read.cgi/php/988809842/l50
CGIの質問はこちら【CGIだけど、なんか質問ある?part4】
http://ebi.2ch.net/test/read.cgi/php/1000804655/l50
過去ログ、その他の役立ち情報は>>2-10を見よう。
0313名無しさん@お腹いっぱい。
01/11/16 01:07ID:???0314名無しさん@お腹いっぱい。
01/11/16 05:11ID:???>>312 それはただ単に世間が狭いからでは? Autoconfの一部, tmake(Qt), fmlとか幾らでもあるでしょ。
0315名無しさん@お腹いっぱい。
01/11/16 05:27ID:???0316名無しさん@お腹いっぱい。
01/11/16 07:11ID:???0317名無しさん@お腹いっぱい。
01/11/16 10:40ID:???0318名無しさん@お腹いっぱい。
01/11/16 13:40ID:???>>317はマジ迷惑。
0319名無しさん@お腹いっぱい。
01/11/16 14:08ID:???perl理解して無いより、CGI理解してない方が迷惑だけど、それはまぁいいや。
0320名無しさん@お腹いっぱい。
01/11/16 22:12ID:eZwp685jって全部同じ?
0321名無しさん@お腹いっぱい。
01/11/16 22:17ID:???LANを組んだローカルサーバーで試してみそ。
0322名無しさん@お腹いっぱい。
01/11/16 23:49ID:WbULnsbPどんな環境で試すと。。。3つ同じになるのかよく考えてみよう
0323321
01/11/17 00:24ID:???俺はこれで違うものが出るからこう言ってるんだけど?
>320はそれが全部同じ物と思ってるんでしょ?
反例出せばいいのかと思ったんだけど違ったならスマソ。
0324名無しさん@お腹いっぱい。
01/11/17 10:00ID:caH7oXws今現在、
$TEMP = $HOGE ;
$HOGE = $SAGE ;
$SAGE = $TEMP ;
にしてるわけですが非効率ですよねぇ
0325名無しさん@お腹いっぱい。
01/11/17 10:06ID:???0326521
01/11/17 10:10ID:FtGVdyVDどちらかをtempの領域にコピーして入れ替えた後復帰してる事に変わりない
メモリを使わずに空中で交換なんて出来ないんだから。
もしHOGEとSAGEが大きな変数ならリファレンスを使おう
0327名無しさん@お腹いっぱい。
01/11/17 10:11ID:???0328名無しさん@お腹いっぱい。
01/11/17 15:58ID:???xorしてxorしてxorすればテンポラリ領域なしで交換できるよ。
でも、素直にテンポラリ使った方が速い、安全、わかりやすい。
0329名無しさん@お腹いっぱい。
01/11/17 16:29ID:???$b+=($a=($b+=$a)-$a);
で入れ替わる。
0330名無しさん@お腹いっぱい。
01/11/17 18:51ID:???じゃないか?
0332
01/11/17 21:16ID:hnjwBqTfActiveState Perl Dev Kitをインストールして使っていて、
C:\>perl -d hoge.perl
で自動的にGUIベースのデバッガが自動で起動しますが、CUIでデバッグ
したいときだけCUIデバッグを開始する方法ありますか?
0333名無しさん@お腹いっぱい。
01/11/17 23:34ID:JGfA8W5O$b ^= $a ^= $b ^= $a;
で入れ替わるんだ。 これだと文字列でもできるんですね。
0334名無しさん@お腹いっぱい。
01/11/17 23:58ID:???長いほうにあわせてzerofill(?)されるので問題ありとか。
0335333
01/11/18 00:05ID:???少数が混ざったり、整数と文字列を交換しようとしたらダメなんですね。
確かにリスクが多そうだ。
0336名無しさん@お腹いっぱい。
01/11/18 00:34ID:???下の書き方だとCGIを置いてるサーバーのドメインが取得されて
しまいます。どこが間違ってるのでしょうか?
$a1 = $ENV{'HTTP_HOST'};
open (ANSWER, ">>data.txt");
flock (ANSWER, 2);
print ANSWER "$a1\n";
flock (ANSWER, 8);
close (ANSWER);
0337名無しさん@お腹いっぱい。
01/11/18 00:57ID:???使ってみようと探してみたら見つかりません。(Perlメモだったと思ったけど、見つからない・・・)
ご存知の方教えてください。 よろしくお願いします。
>>336 $ENV{REMOTE_ADDR}でいけるはず
0338名無しさん@お腹いっぱい。
01/11/18 01:00ID:???0339名無しさん@お腹いっぱい。
01/11/18 01:05ID:???普通は $ENV{REMOTE_HOST}だとおもう。
0340336
01/11/18 01:29ID:jf4mdJsf$ENV{REMOTE_ADDR}だとIPが取得されてしまいます。
>>339
$ENV{REMOTE_HOST}だと何も取得出来ないのですが・・
0341名無しさん@お腹いっぱい。
01/11/18 01:37ID:GYkHI9xFサーバの設定によってはいちいち逆びきしないのも
あるんじゃなかったけ?
0342340
01/11/18 01:40ID:GYkHI9xF>>341
gethostbyaddr を使うことになると思う。
CPAN突っ込めるならもう少し楽になる。
0343340!=341=342
01/11/18 01:48ID:GYkHI9xFCPAN使わんでも標準モジュール(perl-5.6.1では)で
Net::hostent というのがあった。
0344
01/11/18 07:40ID:ec8bnEpUprint "Content-type: application/download\n";
print "Content-disposition: filename=\"test.lzh\"\n\n"; だと駄目みたいです
0346名無しさん@お腹いっぱい。
01/11/18 10:02ID:???FAQかな?ここに書いてあったよ。
http://web11.freecom.ne.jp/~chaichan/qanda/qa414.htm
0347336
01/11/18 14:08ID:HApvi2Od誰か教えて〜
0348名無しさん@お腹いっぱい。
01/11/18 14:25ID:???>>342に答えあるだろうが…。
0349348
01/11/18 14:26ID:???検索して分からないようなら
自治体主催のIT講習会でも行って来なさい。
0350名無しさん@お腹いっぱい。
01/11/18 14:43ID:???ここは初心者用スレだというのがわからんのか?
0351名無しさん@お腹いっぱい。
01/11/18 14:53ID:???だから何か?
0352名無しさん@お腹いっぱい。
01/11/18 14:58ID:???サーバーの設定によってはリモートホストは取得できない。
IPで我慢すれ。
0353344
01/11/18 18:07ID:???Perlを通して吐き出す際、壊れてしまうみたいです。(Windows+ActivePerlで.zipを出力)
foreach $_ (@temp) {
$_ =~ s/\n//g;
print $_;
}
とりあえずこれで\nは消してみたんですが、後ろの方がさっぱり消えてしまいます。
(.rarに関してはRar!としか出ません・・・)
何をどう置き換えればいいんでしょうか?
0354名無しさん@お腹いっぱい。
01/11/18 18:36ID:???0355353
01/11/18 21:14ID:???0356RA・イール
01/11/19 15:45ID:jO7Jmwt3grepの部分で
1. $command .= '"/usr/bin/grep ' . "\'$string\' " . "$filepath " . "| head -n $linenum \"|";
1のようにした場合、2バイト文字や記号等も拾ってくれるのですが
2. $command .= '"/usr/bin/grep -h "' . "^$day_string" . '" ' . "$filepath " . "| grep " . "\'$string\' | head -n $linenum \"|";
上記の場合、2バイト文字や記号等を認識してくれないのですがどうしてでしょうか?
どうすればよいのかアドバイスしていただけないでしょうか?
よろしくお願いします。
0357名無しさん@お腹いっぱい。
01/11/19 16:05ID:???2バイトはさっぱりだけど&%$とかは2回通ったけどなぁ・・・
Unix板のハッカーに聞けばどしどし答えてくれそう (^^;
0358名無しさん@お腹いっぱい。
01/11/19 16:06ID:???だったら解んないっす
0359名無しさん@お腹いっぱい。
01/11/19 19:04ID:pdb1llN8$test =~ s/>>/aa/g;
>>の指定はどのようにしたらいいのでしょうか
0360名無しさん@お腹いっぱい。
01/11/19 19:21ID:???0361名無しさん@お腹いっぱい。
01/11/19 20:48ID:f2JzrPLI>じゃなくて>に中で変換されていました・・・
0362名無しさん@お腹いっぱい。
01/11/19 20:49ID:f2JzrPLI(半角で書くと変換されちゃうんですね)
0363名無しさん@お腹いっぱい。
01/11/19 21:32ID:j7n2AWkf冬厨ですみません。
0364名無しさん@お腹いっぱい。
01/11/19 21:48ID:???http://pc.2ch.net/test/read.cgi/php/988808396/
どうぞこちらへ。
0365名無しさん@お腹いっぱい。
01/11/19 21:53ID:j7n2AWkfflock(OUT, 8);
close (OUT);
を、
exit;
に変えればよろしいのですか?
0366名無しさん@お腹いっぱい。
01/11/19 22:19ID:???凄いですね (^v^
0367名無しさん@お腹いっぱい。
01/11/19 22:29ID:WFMClysi1・・
2・・
3・・
・
・
と並んでいるのを読み込み、上から「10件まで」と件数を決めて
別のファイルに書き込みたいのです。
openやprintの使い方はわかるのですが、件数の決め方がわから
ないので教えて下さい。
0368名無しさん@お腹いっぱい。
01/11/19 22:39ID:???0369名無しさん@お腹いっぱい。
01/11/20 00:17ID:???forの方が後だろ(w
0370名無しさん@お腹いっぱい。
01/11/20 00:19ID:???0371名無しさん@お腹いっぱい。
01/11/20 00:34ID:???他人を主人公にして自分の思い出を語るのはやめれ。
0372名無しさん@お腹いっぱい。
01/11/20 00:45ID:???あれは小学5年頃の話でしょうか
話について来れなくて気を悪くなされたならごめんなさい。
0373名無しさん@お腹いっぱい。
01/11/20 01:31ID:???0374名無しさん@お腹いっぱい。
01/11/20 01:35ID:???ってことでしょーか?
0375名無しさん@お腹いっぱい。
01/11/20 03:42ID:???369をどう読めばforで挫折したと解釈出来るんだ?
ぼうやはforより先にひらがなを勉強すべき(w
0376名無しさん@お腹いっぱい。
01/11/20 06:49ID:???0377名無しさん@お腹いっぱい。
01/11/20 17:18ID:???あの頃はフロッピーディスクなんて高嶺の花・・・
0378名無しさん@お腹いっぱい。
01/11/21 01:35ID:???例えばstring = "hoge#poyo#1000#comment"、みたいなデータが有ってCommentだけが
不定長だとするとCとかならstring[4] = '\0';とかしてmoveせずにガンガン使えるんだけど
splitだとCommentの最後までループしちゃうし、値をコピーするから
凄く遅そうですよね。commentが10000バイトとかだと結構差が有るんで
何とかしたいんです。
BBSなんかの行解析は大抵splitを使ってるけど・・・・
indexとか使って上手く出来ないですかね・・・・
0379適当に即答。
01/11/21 01:41ID:???0380名無しさん@お腹いっぱい。
01/11/21 07:57ID:???comment以外が固定長なら
substr($string,14,length($string))
でできないかな?
0381名無しさん@お腹いっぱい。
01/11/21 20:46ID:???30代オヤヂ族かよ(w
いいトシして板スレ違いは自粛しようぜ(大爆笑)
0382名無しさん@お腹いっぱい。
01/11/21 22:47ID:???0383名無しさん@お腹いっぱい。
01/11/22 13:24ID:???0384名無しさん@お腹いっぱい。
01/11/22 14:27ID:???0385名無しさん@お腹いっぱい。
01/11/23 06:07ID:rvdfMFcf今Vivi使ってますが試用期間過ぎてるのでウザイです。
シェアの定番は秀丸というのは知ってますがフリーで
いいのありませんか?
あまりいいのなければViviに3000円出そうと思ってるのですが。。
0386_gunzip@vimマンセー
01/11/23 06:39ID:???Viviっていえば、たしかvi互換エディタだったよね?
Windows版vim(gvim)はどうでしょうかね。
本家 http://www.vim.org/
Windows版 http://www.kaoriya.net/(日本語)
0387名無しさん@お腹いっぱい。
01/11/23 06:45ID:???そのためのツールは何て名前でしたっけ?
いくら検索しても見つかりません。
よろしくお願いします。
0388白夜 ◆GiKO.QrM
01/11/23 07:06ID:???パールエディタってのを一応持ってる。
あんまり使わないけど一応フリーなんで。
ttp://www.k-collect.net/
0389名無しさん@XEmacs
01/11/23 07:14ID:MqJMqOjcperlcc
perl2exe
0390名無しさん@お腹いっぱい。
01/11/23 11:53ID:???0391名無しさん@お腹いっぱい。
01/11/23 16:39ID:???Tera Padというのが雑誌で評判よかったのでDLしてみたけど
マルチウィンド出来ないので使いづらかった。
やはりいいやつはお金出すしかないかも。
0392名無しさん@お腹いっぱい。
01/11/23 23:17ID:???…せっかくだから定番だがXEmacsとかMeadowとかxyzzyとか。
0394名無しさん@お腹いっぱい。
01/11/24 00:08ID:2uJfuz0i地味な面構えが邪魔にならなくて素敵。
って、お試しで使い始めたばかりの奴が言うのもなんだけど。
0395正規表現わけわからん
01/11/24 00:08ID:ZE9o/Xh4のってどうやればいいんですか?
0396名無しさん@お腹いっぱい。
01/11/24 01:43ID:???http://pc.2ch.net/test/read.cgi/php/996105815/104-
0397正規表現わけわからん
01/11/24 01:50ID:???まじさんくす!ログ全て読む気になれなかったんで。
0398名無しさん@お腹いっぱい。
01/11/24 02:21ID:QdQjjDaqサイト全体をgzip+tarで圧縮、新サーバーへファイルを転送、解凍
というプロセスでサイトの移転は出来ますか?
パーミッションをそのままでできたらいいな、と思うのですが。
0399名無しさん@お腹いっぱい。
01/11/24 02:30ID:???0400名無しさん@お腹いっぱい。
01/11/24 07:30ID:???日付を乱数に変換したいのですがどうすればいいでしょう?
たとえば01/11/24 02:30をランダムな英数字に暗号化のやり方が
わかりません。
一応自分なりに考えて
日付 = (( 日付 ) + 1 ) * 123;
などのように考えてやってみたのですが
どの日付も同じ結果になってしまって・・・。
だれかヘルプミー(;;
0401名無しさん@お腹いっぱい。
01/11/24 07:46ID:???$salt = "abcde";
crypt($salt, time());
0402名無しさん@お腹いっぱい。
01/11/24 07:53ID:???ちょっと質問していいですか?
そのcryptとはどういう意味を持つ単語でしょうか…。
$salt = "abcde";
crypt($salt, time());
って、$salt = "abcde";で、$saltはabcdeという意味にしてってところまでは
わかるのですが、下のcrypt($salt, time());がよくわからないので・・・。
time()が上で私がいった日付のことで、
で、ランダムにした日付を表示させたい場所に$saltを書くってとこまで理解したのですけど・・・
0403名無しさん@お腹いっぱい。
01/11/24 07:56ID:???cryptはどういう効果を出すんでしょうか。
あと$saltとtimeの間にいれる,もよくわからなくて・・・。
cryptはシャッフル。
,は合わせるという意味で、
シャッフル(abcde 合わせる 日付)
という感じなんですか?
0404名無しさん@お腹いっぱい。
01/11/24 08:19ID:???あ、引数逆だった。 crypt(time(), $salt) でよろしく。
$perldoc crypt
$man 3 crypt
http://www.nlp.ie.niigata-u.ac.jp/~hiro/parole/kh.html
0405これを読んでも。。。結局わかりにくいかな?
01/11/24 16:01ID:???乱数というのは、求める度に違う数になって、別々に出した乱数が同じ数字になることはあり得ないものです。
日付を乱数に変換しても、適当に乱数を求めても、本質的な違いはないはずなんです。
ただ今の普通のコンピューターには本当の乱数を出す機能はありませんので、
「日付を種に、擬似乱数を生成する」ということはあります。(種が日付だけだと、かなり危険ですが。)
でもこれはたぶんおっしゃられていることと違うと思います。
日付から、一見でたらめに見える数を求めるということがしたいのだと思います。
このとき、日付→数 は求められても、 数→日付は求められないようにするのが、
「ハッシュ関数」というものです。
ハッシュ関数の場合、入力が同じである場合、出力は必ず同じものになります。
だから、考えられる全ての日付を入力して再計算をすれば、どの日付から求めたのかは
たちどころにわかってしまいます。
そのような攻撃をちょっとだけ、やりにくくするのが、味付け作業(塩を振る)という作業です。
ただ、saltは4096通りしかあり得ないので、総当たりすればばれてしまうことには代わり有りません。
注意が必要です。
最近は、cryptよりもmd5の方が流行っています。
2chでは、トリップはcryptで、IDはmd5でやっているようです。
数→日付 の再計算ができるようにしておくこともあります。この場合は、
共有鍵暗号や、公開鍵暗号を使うことになります。
0406名無しさん@お腹いっぱい。
01/11/24 16:12ID:???0407名無しさん@お腹いっぱい。
01/11/24 16:53ID:???0409名無しさん@お腹いっぱい。
01/11/24 23:28ID:PCZZBwJCPerlでCGIの勉強をしようと想い、参考書に付属してあった
PerlとApacheというWebサーバをインストールしました。
そしてまず基本の文字を出力すると言うコードを書き、
IEのブラウザから、そのCGIファイルがあるディレクトリを指定したのですが、
ブラウザに表示されず、そのCGIファイルをダウンロードしてしまいます。
IEの設定が間違っているのでしょうか?
解決方法お分かりでしたら教えてください
0410名無しさん@お腹いっぱい。
01/11/24 23:42ID:???貴方はとんでもない思い違いをしています。
参考書をもっとよく読みましょう。
0411409
01/11/24 23:58ID:???もう一度読みましたが分かりませんでした。
このApacheというソフトをインストールし、起動していれば
通常のようにネットに繋いでサーバにアクセスしなくてもいいんですよね?
どうか先ほどの説明して頂けないでしょうか
0412名無しさん@お腹いっぱい。
01/11/25 00:20ID:???■ このスレッドは過去ログ倉庫に格納されています