【Perl】初心者コーナーPart11
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
02/03/27 12:53ID:wAXxxOxPいらっしゃーい、Perlの「コーディング」で困ってる人のスレです。
1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。
参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
CGIの質問はこちら【CGIだけどなんか質問ある Pert 5.01 】
http://pc.2ch.net/test/read.cgi/php/1015127347/l50
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
過去ログ、その他の役立ち情報は>>2-10を見よう。
0810nobodyさん
02/04/21 16:45ID:???------------------仕切りなおして再開-----------------
0811コレが真実だ!
02/04/21 16:47ID:???0812nobodyさん
02/04/21 16:48ID:???0813nobodyさん
02/04/21 17:01ID:???0815nobodyさん
02/04/21 17:31ID:???0816nobodyさん
02/04/21 17:37ID:???0817nobodyさん
02/04/21 17:40ID:???0818nobodyさん
02/04/21 17:48ID:???認めろよ(藁)
0819nobodyさん
02/04/21 18:06ID:???等はこう書きたかったと思われ。
_gunzip=神 >>>>>> japu=上級者 >>>>>> やさしいお兄さん=中級者 >>>> 初心者 >>>>>>> Dream★=異常性愛車 > 弐編=厨房
Dream★は自覚してるんだねw
0820nobodyさん
02/04/21 18:10ID:???0821469
02/04/21 18:13ID:???これだけは認めろよな。
0822nobodyさん
02/04/21 18:17ID:???仮にそれを認めたとしたって
_gunzip氏>>>(以下略)821
こうなるのは明白。
0828nobodyさん
02/04/21 18:47ID:???http://jarl.sourceforge.net/
まぁ825が一番バカなわけだが。
0829469
02/04/21 18:48ID:???0830469
02/04/21 18:49ID:???0831nobodyさん
02/04/21 19:20ID:???1. if ($string eq "hoge") {
2. if($string eq "hoge"){
3. if ( $string eq "hoge" ) {
4. if( $string eq "hoge" ){
どれが好きですか?細かいけど
0832_gunzip
02/04/21 20:05ID:???いろいろ指摘ありがとうございます。
素直に$_[0], $_[1]を利用して
--------------------------
#!/usr/bin/perl -w
use strict;
sub mapup (& \@ \@)
#(code_ref $code, array_ref $_a, array_ref $_b)
{
my($code, $_a, $_b) = @_;
my @retval;
my $max_index = (@$_a < @$_b) ? @$_a : @$_b;
for my $i (0 .. $max_index - 1) {
push @retval, $code->($_a->[$i], $_b->[$i]);
}
return @retval;
}
my @a = (1, 2, 3);
my @b = (0, 8, 7);
my @c = qw[ G C A T ];
my @d = qw[ C G T A ];
my @sum = mapup { $_[0] + $_[1] } @a, @b; # (1, 10, 10)
my @pro = mapup { $_[0] * $_[1] } @a, @b; # (0, 16, 21)
my @bigger = mapup { $_[0] > $_[1] ? $_[0] : $_[1] } @a, @b; # (1, 8, 7)
my @concat = mapup { $_[0] . "-" . $_[1] } @c, @d; # (G-C,C-G,A-T,T-A)
-----------------
とした方が良かったですね。
(わざわざsortに似せて$a, $bを使おうとして、かえって不便に)
0833名無しさん@edlin
02/04/21 20:25ID:???もちろん1
0835nobodyさん
02/04/21 21:44ID:???細かいが
if ($string eq 'hoge') {
「"」より「'」の方が変数置換無い分だけ早そうな気がするが、嘘かも。
0836nobodyさん
02/04/21 22:29ID:???0837nobodyさん
02/04/21 22:51ID:???0838nobodyさん
02/04/21 23:35ID:IQt5PbmuCGI 用にコンパイル無し、インタプリタとして動かしてるなら効果ある?
0839名無しさん@edlin
02/04/21 23:47ID:???それはちょっと勘違いしている。
通常のインタプリタとして実行する時も、中間コードにコンパイル
され、実行されるんだけど、その「コンパイル」を指してるんだよ。
0842nobodyさん
02/04/22 04:49ID:5JDbu1pPどのようにすればいいのでしょう。
sprintf(); で簡単に記述できたと思ったのですが
どうしても見つかりません。
ご存じの方いましたら教えてください。
0843nobodyさん
02/04/22 06:05ID:???sprintfを使った方法が見つからないのでごめんなさい。
0844nobodyさん
02/04/22 06:44ID:???0845nobodyさん
02/04/22 09:02ID:???$_ = reverse join ',', grep !/^$/, split /(\d\d\d)/, reverse $_;
0846nobodyさん
02/04/22 09:40ID:???クライアント様のご要望で、どこかにsprintfを噛まさないといけないようです。
$d = reverse sprintf "%s", join ',', reverse($d) =~ /\d{1,3}/g;
つーかメモ。
0847nobodyさん
02/04/22 11:39ID:???perldoc perlop によると、
# put commas in the right places in an integer
1 while s/(.*\d)(\d\d\d)/$1,$2/g; # perl4
1 while s/(\d)(\d\d\d)(?!\d)/$1,$2/g; # perl5
だそうです。
ちなみに、オレ自身、コレがどういう理屈(仕組み)でうまくいくのか
理解してません。でも、ちゃんと動いてる。うーむ。
0848712
02/04/22 21:42ID:bQF56S81以下の方法でなんとか形にはなりました。
use LWP::UserAgent;
use HTTP::Cookies;
$ua = LWP::UserAgent->new;
$ua->cookie_jar(HTTP::Cookies->new("",autosave => 1));
$request = HTTP::Request->new('GET', "http://XXX.com/YY.asp?ID=ID&PASS=PASS");
$response = $ua->request($request)->as_string;
$request = HTTP::Request->new('GET', "http://XXX.com/ZZZ.asp?・・・・");
$response = $ua->request($request)->as_string;
print $response;
0849nobodyさん
02/04/22 22:37ID:???これをPerlでやる方法はどうすればよいのでしょうか?
ルートのところがよくわからん・・・。
0851nobodyさん
02/04/22 22:44ID:???0852nobodyさん
02/04/22 23:39ID:NaATCEmQこの質問、FAQだと思うんですが、FAQをまとめた所が無いし
過去スレにも載ってないようなので、質問しました。
0853Dream 黒星
02/04/23 00:36ID:???g オプションは意味がないから外せ!
でも、もっと速い方法があるが... オマエ等にはそれで十分だ。
0854nobodyさん
02/04/23 02:52ID:???if(coreファイルがあるか?){
unlink(coreファイル);
}
0855847
02/04/23 03:35ID:???オレに言わないでくれ・・・
「/gだけじゃうまくいかないこともあるんだよ」っつー例として
に載ってたので、仕方なくついてんだろうよ。
あんたが本当にもっと速い方法を知ってるのかどうかわからんが、
もうこのスレでオナニーカキコはやめてくれ。頼むよ。
0856842
02/04/23 04:34ID:???勉強になりました。ありがとうございます。
0857nobodyさん
02/04/23 15:37ID:???/☆" ̄ ゙̄ヽ/
__ Y´ノノノ"ヽヽヽ / ̄ ̄ ̄ ̄
. ヾcヽ.l(| ∩ ∩|)| < Dream は天然ばか♪
\ \、 ▽ ノjl| |
`く ヾ=oノ_ブ゙i \___
i (;) ,___|
|___| .|
| i| (,,ノ
| 7 ノ
|_l\ノ,>
. | | |_ノ
. (_)
0858nobodyさん
02/04/23 17:35ID:???は分かるんですが、
1 while
はどういう意味なんでしょうか?
低レベルな質問ですいません。
0859nobodyさん
02/04/23 20:13ID:???f() while expr;
if(expr){ f() }
f() if expr;
foreach (expr){ f() }
f() foreach expr;
0860nobodyさん
02/04/23 20:21ID:???0861nobodyさん
02/04/23 20:39ID:???マッチングのチェックをするポイントが移動するから。
gオプションは「何度も繰り返す」じゃなくて「最初の一回で終了をしない」というものだから。
0862nobodyさん
02/04/23 22:03ID:trg6QFfS$temp{aaa}[1] = 'bbb';
foreach(0..1){
print;
}
↑の変数は何なのですか?
@temp{aaa} = ('aaa','bbb');
だとダメだし。。。
0864nobodyさん
02/04/23 23:11ID:???ハッシュに配列リファレンスが入ってるのではないでしょうか。
0865(´-`).。oO(もれそう…)
02/04/23 23:15ID:???print "$temp{aaa}[$_]\n" foreach (0..$#{$temp{aaa}});
0866nobodyさん
02/04/23 23:51ID:???こんなの出来ないのか?と思ってやったらずばりできたので
質問させてもらいました。
ありがとうございました。
>>865
(・∀・)<バカっていったやつが〜〜の起源はこんな感じか?
まさに何をしたいわけでも無いです。
反射的にバカバカいう、かつ自分も〜な人に教えを請うつもりはありません。
0867nobodyさん
02/04/23 23:54ID:???とりあえずレス番間違いを修正しとけ。
そんな間違いして気付かずに入るとバカと言われても否定できなくなるぞ。
0868nobodyさん
02/04/23 23:55ID:???漏れがバカでした、逝ってきます。
0871nobodyさん
02/04/24 03:02ID:???やだやだ
0872nobodyさん
02/04/24 07:22ID:???やだやだ
0873nobodyさん
02/04/24 17:40ID:QCOQFZwwwindows2000にてAn httpd(1.39f)を使ってCGIの動作実験を行っているのですが、
Cookieを受け入れてもらうためにPerlで
print "Set-Cookie: data=Yes; expires=Sat,05-Mar-2005 00:00:00 GMT\n";
print "Content-type:text/html\n\n";
(以下html文書が続く)
のように記述したのですが、IE5.0、IE5.5に無視されてしまいます。
(NC6.xでは問題なく受信してくれます)
原因のわかる方はいらっしゃいますでしょうか?
0874nobodyさん
02/04/24 17:46ID:???CGIだけど、なんか質問ある? part 6
http://pc.2ch.net/test/read.cgi/php/1019561283/
0875反抗期
02/04/24 18:40ID:/vYDcPy6$backupFile = ">C:\\Inetpub\\wwwroot\\backup\\backup.txt";
sub backupmake {
(open OUT,$backupFile);
print OUT "$nowtime $name $email \n";
close( OUT );
}
このように記述すると
backup.txtにデータ自体はきちんとが入るのですが
前のデータが消えてしまいます。
上書きせずにデータを入れて行くにはどうすれば良いですか?
ちなみに
sub backupmake {
(open OUT,">>$backupFile");
print OUT "$nowtime $name $email \n";
close( OUT );
}
とやってみたのですが、これではbackup.txtに記述されませんでした
0876nobodyさん
02/04/24 18:47ID:???おしいね。追記したいなら
open(OUT,">$backupFile");
じゃない?($backupFileの1文字目が「>」なので)
0877反抗期
02/04/24 18:52ID:/vYDcPy6>>876
お母さんありがとう!
0878
02/04/24 18:54ID:ST7JH4TO質問させてください。
よく、掲示板の機能で、出身地をリストから選んで
入力できたり、アイコンをリストから選んで入力できたり
するけど、ああいうのをカスタマイズ(例えば、
出身地じゃなくて、血液型を入力できたり)
したいのですがそういう説明のあるサイトとかありますか?
それとも簡単なことですか?
0880nobodyさん
02/04/24 19:27ID:???<option>出身地B</option>
・
・
↓
<option>A型</option>
<option>B型</option>
・
・
0881878
02/04/24 19:29ID:ST7JH4TOもし、あなたに頼むならいくらでやってくれますか?
一箇所だけです。
出身地を血液型に入れ替えるだけです。
0882873です。
02/04/24 19:50ID:47ftV//x0883nobodyさん
02/04/24 21:20ID:???スクリプト改造工房
http://pc.2ch.net/test/read.cgi/php/1012839651/
既存のスクリプトの改造してほしいんだったらこのスレにどーぞ
改造依頼するときは 1 の注意書きよく読んでね
0886nobodyさん
02/04/25 17:07ID:eszjGBC/0887nobodyさん
02/04/25 18:46ID:???0888pear ◆PeArra/s
02/04/25 19:54ID:Va/Pba3y症状は、最初の画面は出るんですけど、
ローカルでテスト書き込みをすると、500エラーを吐いてしまいます。
ソースは↓にアップしました。
http://www.geocities.co.jp/Playtown-Knight/7767/petit.txt
よいアドバイスお待ちしています、よろしくお願いします。
0889nobodyさん
02/04/25 20:03ID:???なにをどう改造したか説明しる。
そして>883に逝く。
0891nobodyさん
02/04/25 20:05ID:UbehO4w6HPの掲示板が荒らされまくって困っています。
書き込んでいる人間のIPアドレスを知る方法がわかる方がいらっしゃったら
教えていただけないでしょうか?
もしくは書き込み不能にできる手段はありますでしょうか?
されるがままで困ってます。
よろしくお願いします。
0892nobodyさん
02/04/25 20:40ID:???明らかにスレ違いだが。
IPを取るのは簡単。
書き込み不能にするのも簡単。
だがしかしIPアドレスなんてのはいくらでも変えられるからあまり意味がない可能性が高い。
その掲示板は閉鎖して、身内にはメールを送り隠れ掲示板を置くのが建設的。
0893rootvg
02/04/25 22:13ID:J89k1oOV送信ログを抜きたいのですが。。。。。。。
0894nobodyさん
02/04/25 22:15ID:???0895891
02/04/25 22:28ID:UbehO4w6御親切な書き込みありがとうございました。
当方、本当に初心者で別の板でこちらを紹介していただいたのですが、
ここもスレ違いだったんですね、すいません。
>IPを取るのは簡単。
>書き込み不能にするのも簡単。
もし、お手間でなければ教えていただけないでしょうか?
もしくは詳しいサイト(板?)を教えていただけると助かります。
よろしくお願いいたします。
0896nobodyさん
02/04/25 22:59ID:???$remote_ip = $ENV{'REMOTE_ADDR'};
$remote_hostname = $ENV{'REMOTE_HOST'}
if ($remote_ip =~ /^10\.1/ || $remote_hostname =~ /hoge\.com$/) {
print "Fuck So Reena!<BR>\n";
exit;
}
0897nobodyさん
02/04/25 23:02ID:T2XLP+gT先日、CGI検索エンジン(ヤフーのようなタイプで管理者のみ登録可能)と、一般的にごくごく普通の掲示板の制作を依頼しようとしたら、合わせて20万円と見積もりがきました。
条件としては、「著作権表示なし」ということで、この値段はどうなのでしょうか?
みなさんのご意見をお聞かせください。
また、上記のような物であれば、いくら位が妥当なのでしょうか?
宜しくお願いします。
0900nobodyさん
02/04/26 00:40ID:???CGIProxy(ttp://business.millto.net/~quadrant/)を使いたいのですが、どうも動きません。
use Socket; を入れてみても動かないのですが、ソケットを使うには如何すればいいのでしょうか?
どなたかご教授お願いします・・・
0901900
02/04/26 01:04ID:???0903nobodyさん
02/04/26 05:34ID:Q56RTaUTいけそうなのはわかったのんですが、どうにもうまく動きません。
/usr/local/bin/gpg -ea -r D44EC5AA aaaa -o bbbb
telnetでログインし、上記コマンドを打って、
bbbbファイルが暗号化されるのは確認しました。
単にこのコマンドをperlスクリプトから打ちたいだけなのですが、
これをsystem関数でやるには、どのような書き方をすればいいのでしょうか?
初歩的な事ですみません、検索してもよくわからなかったのでお願いいたします。
0904pear ◆PeArra/s
02/04/26 07:00ID:???ごめんなさい、改造中に誤って1行消してしまったみたいで…
今は正常に動作しています、迷惑かけてしまってすいません。
>>897
業者に依頼するなら妥当だと思う
0905アリソン
02/04/26 08:13ID:???削除したいんですが例えば
april1.html
april2.html
april3.html
april4.html
と言うファイルがある場合
aprilの後3以下の数字ならそのhtmlファイルを削除する場合
ってのはどうすればよろしいんでしょうか?検索してもわかりませんでした。
教えてください。
0906nobodyさん
02/04/26 08:26ID:???使用する前にまずunlinkをコメントアウトしてprint文で正しい
ファイルが選ばれてるかどうかテストしておいたほうがよろしいかと。
use IO::Dir;
my $dh = IO::Dir->new( "/path/to/dir" ) || die $!;
while( $dh->read ) {
next if !/^april(\d+)\.html$/;
next if $1 >= 3;
## print "deleting $_\n";
unlink($_);
}
0908nobodyさん
02/04/26 10:42ID:???unlink('april2.html');
unlink('april3.html');
0909nobodyさん
02/04/26 10:53ID:qDk2ux2Iレス数が900を超えています。1000を超えると表示できなくなるよ。