【Perl 】初心者コーナーPart4

このエントリーをはてなブックマークに追加
1名無しさん
初めて来た方、初心者はまずこのスレッドから始めよう。
尋ねる前に同じ質問がないかこのスレや旧スレ、及び下のリンクを一通り見てみよう。
案外答えはもう書かれているかもしれない。

[関連スレッド]
Part1 http://tako.2ch.net/test/read.cgi?bbs=perl&key=957208980
Part2 http://tako.2ch.net/test/read.cgi?bbs=perl&key=971817087
Part3 http://tako.2ch.net/test/read.cgi?bbs=perl&key=979894521
【Perl@`CGI】参考書籍 http://tako.2ch.net/test/read.cgi?bbs=perl&key=970166109

[総合]
□Perl Com: http://www.perl.com/pub/
□CPAN.com: http://search.cpan.org/
□ActivePerl: http://www.activestate.com/

[お薦め]
 ・Perl Recipes: http://www.effectiveperl.com/recipes/
 ・Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
 ・Randal's WebTechniques columns: http://www.stonehenge.com/merlyn/WebTechniques/
 ・Perlの部屋: http://www.cc.rim.or.jp/~midorin/mad-p/perl/index.html

[Module]
 ・Perl Module Reference: http://www.bekknet.ad.jp/~bero/docj/module/
 ・PPMPackages: http://www.activestate.com/PPMPackages/
 ・河馬屋二千年堂's Page: http://member.nifty.ne.jp/hippo2000/index.htm

[Document&Tutorial]
 ・Perl News: http://www.news.perl.org/
 ・Perl Monks: http://www.perlmonks.org/
 ・PerlMonth - Online Perl Magazine - : http://www.perlmonth.com/index.html
 ・use Perl All The Perl: http://use.perl.org/
 ・Learn Perl - Perl Education: http://www.devdaily.com/perl/edu/index.shtml
 ・Perldoc.com: http://www.perldoc.com/
 ・Using Perl5 in Web: http://docs.rinet.ru/Using_Perl5_in_Web/
 ・Rex Swain's Home Page: http://www.rexswain.com/
 ・Robert's Perl Tutorial: http://www.netcat.co.uk/rob/perl/win32perltut.html
 ・Perl Tuts: http://savage.net.au/Perl-tutorials.html
 ・Beginning Perl Tutorials: http://www.pageresource.com/cgirec/index2.htm
 ・jcode.pl の私的な解説書: http://www.mikeneko.ne.jp/~lab/kcode/jcode.html
 ・Perl for Newbie: http://www.harukaze.net/~mishima/perl/index.html
 ・Logical Choice Software@` Home Page: http://www.logsoft.com/perltips/
 ・Perlfect Solutions: http://perlfect.com/
 ・The Perl Archive : http://www.perlarchive.com/
2名無しさん:2001/03/13(火) 05:50
[Mailinglist]
 ・FreeML: http://www.freeml.com/ml_mess.php?ml=perl
 ・OOP w- Perl: http://perl-oop.hoops.ne.jp/
 ・CGIメーリングリスト: http://forest.ne.jp/cgi-ml/
 ・WWW Mailing Lists Archives at MPE: http://www.xray.mpe.mpg.de/mailing-lists/

[NetNews Achive]
 ・fj.lang.perl: ftp://ftp.jaist.ac.jp/pub/news-archive/fj.lang.perl/
 ・fj.comp.lang.perl: ftp://ftp.jaist.ac.jp/pub/news-archive/fj.comp.lang.perl/
 ・japan.comp.lang.perl: ftp://ftp.jaist.ac.jp/pub/news-archive/japan.comp.lang.perl/

[Perl for Win32]
 ・dada's perl lab: http://dada.perl.it/
 ・Perl for Win32: http://www.northbound-train.com/perlwin32.html

[Perl/Tk]
 ・Perltk.org: http://perltk.org/
 ・Perl-Tk 日本語化 パッチ: http://mirror.nucba.ac.jp/users/tsutomu/perltk/jp-patch.html
 ・有限会社ビットウォーク: http://www1.odn.ne.jp/bitwalk/index.html
 ・comp.lang.perl.tk FAQ: http://w4.lns.cornell.edu/~pvhp/ptk/ptkFAQ.html

[misc]
 ・Perl Mongers: http://www.perlmongers.org/
 ・Embperl: http://perl.apache.org/embperl/
 ・bio.perl.org: http://bio.perl.org/
3_gunzip:2001/03/13(火) 05:55
ちなみに、↑のリンクは、↓のスクリプトでIEのお気に入りをリスト化したものから、
2/3ほど削除して短くしたものです。
#朝起きて作成10分テスト5分

#!/usr/bin/perl -w

sub walkdown{
    my($dir@`$level) = @_;
    local(*D@`*F);
    my($basename@`$url@`$path);
    
    opendir(D@`$dir) or die "Can't open $dir";
    foreach(readdir(D)){
        next if $_ eq '.' or $_ eq '..';
        $path = "$dir/$_";
        if(-f $path){
            if(/^([^\/]+)\.url\z/i){
                $basename = $1;
                open(F@`$path) or die "Can't open $path";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(<F>){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chomp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url = $1 if /^URL=(.+)\z/;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;close F;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print " " x $level @` "・$basename: $url\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}elsif(-d _){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print " " x $level @` "[$_]\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;walkdown($path@`$level + 1);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;closedir(D);
}

walkdown("C:/Windows/Favorites/Perl"@`0);
4名無しさん:2001/03/13(火) 06:17
お疲れ様ー
5_gunzip:2001/03/13(火) 06:41
>>4
ありがとー
6名無しさん:2001/03/13(火) 08:49
>>3
自慢したくて仕方ないんだね。
7名無しさん:2001/03/13(火) 09:17
>>6
自慢だろうと何だろうと、便利なんだからいいじゃん。感謝感謝
8名無しさん:2001/03/13(火) 10:06
>6
お前もたいがいつまらんな奴だな。
9_gunzip:2001/03/13(火) 10:59
>>6
別にそんなつもりはないない。
朝起きて、いちいちURLをコピーして貼り付けるのを繰り返すのが面倒だから書いただけ。
こういったことがすぐに出来てPerlは便利だな、と思ったから貼り付けただけで
(確かに余計なことだったな。今後はやらない)別に他意は無い。
---
それ以前に、自分には>3は単なる書き捨ての(ゴミ)スクリプトにしか見えないのだが、
一体何処から「自慢」云々といった発想が浮かんでくるのか、さっぱり分からん。
もしかして、3が「人に自慢できる」レベルのものに見えるのか?
10あらすぃ:2001/03/13(火) 11:20
6=粘着,低レベル厨房
116:2001/03/13(火) 11:52
>>9
判れば宜しい。
「朝起きて作成10分テスト5分」と書かなければ良かったのだが。
12JAPA (Just Another Perl Analer):2001/03/13(火) 12:16
完全にスレと関係無い話のような気が・・・。
13_gunzip:2001/03/13(火) 12:38
>>11
ああ、そこが悪かったのか。
何気なく書いただけなのだが、確かに、そう取られても仕方ない。
(別に嘘を書いたわけではないが、余計なことを書いたのは事実だな。
あれは、ただ「Perlだとすぐに書けるのう」と言いたかっただけだ。
誤解を与えたなら、すまん。)
ん、今後は気をつけないと。
>>12
すみません。自分の不注意故です。
14名無しさん:2001/03/13(火) 12:47
>6
毎朝1センチずつ刻まれて死んでくれ。
>13
おれも妬まれるくらいになりたいにょ。
15名無しさん:2001/03/13(火) 12:47
>JAPA
Analerってアナル人ですか(萌
16名無しさん:2001/03/13(火) 12:48
gunzipさんは大人やねえ。
17名無しさん:2001/03/13(火) 12:57
なんか変な雰囲気ですけど・・・まあいいや
Perlにはswitch文がないらしいですけど、その代替として本に載っている
(Black Bookとかいう本に載っていました)
SWITCH{
if /pattern/ && do{
last SWITCH;
}
if /pattern2/ && do{
last SWITCH;
}
}
とか、if ... elsif 以外のやり方ってありませんか?
どうも上の二つはしっくりこないので。
18名無しさん:2001/03/13(火) 13:06

foreach ($key) {
&nbsp; /pattern$/ and last;
&nbsp; /pattern2$/ and ptn2();
}
19/bin/名無しさん:2001/03/13(火) 13:51
自分のレベルがばれるのは情けないが。
default が非常にあやしいというのは内緒だ。

---

package Switch;
use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(switch case break);

=usage

use Switch;
chomp($value = <>);
switch $value@`
case 'a' => sub {
print "This is first a.\n";
}@`
case 'b' => sub {
print "This is first b.\n";
break;
}@`
case 'a' => sub {
print "This is second a.\n";
}@`
case 'b' => sub {
print "This is second b@` but will not display ...\n";
}@`
default => sub {
print "Other.\n";
};
=cut

BEGIN {
_init;
}

sub break {
'break';
}

sub switch ($%) {
my($value@` %other) = @_;
_default(%other);

if(exists $subs{$value}) {
foreach (@{$subs{$value}}) {
last if(&$_ eq 'break');
}
}
elsif($default) {
&$default;
}

_init;
}

sub case ($$;%) {
my($k@` $v@` %other) = @_;
unshift(@{$subs{$k}}@` $v);
_default(%other);
();
}

sub _default (%) {
my(%other) = @_;
my($k @`$v);
while(($k@` $v) = each(%other)) {
$default = $v if($k eq 'default');
}
}

sub _init {
%subs = ();
$default = '';
$break = 0;
}

1;
20/bin/名無しさん:2001/03/13(火) 13:53
break もあやしいな。
ちなみにネタなので本気にして使わないように。
2117:2001/03/13(火) 15:26
>>18さん19-20(/bin/名無しさん)さん
いろいろありがとうございます。ただ、
すみません。もう少し短くなるようないいアイディアはないでしょうか。
なぜこんな事を聞いているかというと、今書いているスクリプトで、
if($mode eq "a"){a()}
elsif($mode eq "b"){b()}
elsif($mode eq "c"){c()}
elsif($mode eq "d"){d()}
elsif($mode eq "e"){e()}
elsif($mode eq "f"){f()}
else{default()}
こんな処理が何回も延々と続くので、何とかならないかなあ
とおもって質問したのですが・・・

22_gunzip:2001/03/13(火) 15:40
>>21
21を見る限り、$mode と同名のサブルーチンを呼び出したいように見える
けれど、その解釈であっているかな?
で、そうなら、何度もその分岐があるそうなので、その部分をサブルーチン
に纏めるか、ハッシュを使用すると良いと思う。

#!/usr/bin/perl -w

$mode = "hoge"; #いろいろ

%subs = map{($_ => \&{$_} )} qw(a b c d e f);
&{$subs{$mode} or "default"}();

#サブルーチン(内容は適当)
sub a{ print "a() called";}
sub b{ print "b() called";}
sub c{ print "c() called";}
sub d{ print "d() called";}
sub e{ print "e() called";}
sub f{ print "f() called";}
sub default{print "default() called";}

23_gunzip:2001/03/13(火) 15:43
>>21
あと、perldoc perlsync の、"Basic BLOCKs and Switch Statements"
を読むと更に良いと思います。
24T女の竹田:2001/03/13(火) 16:13
>>21=17さん
gunzipさんの>>22のコードが理想的だと思います。
ただ、Perl初心者の自分が書くとしたら、こうかな?

#!/usr/bin/perl&nbsp;-w&nbsp;
$mode='b';
@subnames=('a'@`'b'@`'c'@`'d'@`'e'@`'f');&nbsp;&nbsp;#サブルーチン名のリスト
$flag='false';
foreach&nbsp;(@subnames)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($mode&nbsp;eq&nbsp;$_)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&{$mode};
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$flag='true';
&nbsp;&nbsp;&nbsp;&nbsp;}
}
if&nbsp;($flag&nbsp;ne&nbsp;'true')&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&default;
}

#以降サブルーチン
sub&nbsp;a{&nbsp;print&nbsp;"a()&nbsp;called";}&nbsp;
sub&nbsp;b{&nbsp;print&nbsp;"b()&nbsp;called";}&nbsp;
sub&nbsp;c{&nbsp;print&nbsp;"c()&nbsp;called";}&nbsp;
sub&nbsp;d{&nbsp;print&nbsp;"d()&nbsp;called";}&nbsp;
sub&nbsp;e{&nbsp;print&nbsp;"e()&nbsp;called";}&nbsp;
sub&nbsp;f{&nbsp;print&nbsp;"f()&nbsp;called";}&nbsp;
sub&nbsp;default{print&nbsp;"default()&nbsp;called";}&nbsp;

それにしてもgunzipさんのコードは勉強になります。
自己流でやってきたので、mapとかを使ったこともほとんどないし^^;
25T女の竹田:2001/03/13(火) 16:15
s/gunzip/_$&/でしたね、ごめんなさいm(_ _)m
26名無しさん:2001/03/13(火) 17:25
#!/usr/local/bin/perl
system "shutdown";

これ書くとどうなるの?怖くて出来ないぞ。
27名無しさん:2001/03/13(火) 19:28
おまえにはそんな権限は無い。
28名無しさん:2001/03/13(火) 20:24
>>22
use strict下でdefaultが呼ばれたときにエラーになっちまうので、
$mode = 'default' unless exists $subs{$mode} ;
&{$subs{$mode}}();
のほうがよいですね。

というのを踏まえて、俺が書くなら、
use strict;

my %subs = (
a => sub { return 'a called' }@`
b => sub { return 'b called' }@`
c => sub { return 'c called' }@`
d => sub { return 'd called' }@`
e => sub { return 'e called' }@`
f => sub { return 'f called' }@`
def => sub { return 'default called' }
);

my $mode = 'hoge';
$mode = 'def' unless exists $subs{$mode};
print $subs{$mode}();

こんな感じ。
29名無しさん:2001/03/13(火) 20:30
もしくは、
exists $subs{$mode} ? $subs{$mode}() : &default;
って感じだな。
3028:2001/03/13(火) 20:50
あぁ、鬱だ。ミス連発。
$mode = 'default' unless exists $subs{$mode} ;
やるなら、
%subs = map{($_ => \&{$_} )} qw(a b c d e f default);
もやっておかなければなりませんね。
_gunzipさんはわかるだろうけど、わからない人に出来ねーぞって
言われたら落ちるので、補足。
失礼。
31_gunzip:2001/03/13(火) 22:36
>>24-25(T女の竹田)@`28-30さん。フォローありがとうございます。
>28-30
>use strict下でdefaultが呼ばれたときにエラーになっちまうので、
確かに。普段-wは付けているのですが、strictは無闇に口うるさい
ような気がするので、いつも500行を越えた辺りから付けることにしていました。
ということもあって、>22では、strictをつけた際の挙動については全く考えて
いませんでした。(指摘してくれてありがとう)

んで、僕の代案ですが、こんなのはいかがでしょ。(use strictでも通ります)
$subs{("default"@`$mode)[exists $subs{$mode}]}();

---
#!/usr/bin/perl -w

use strict;
#our って、5.6以降でしか使えないかも
our %subs = ();
our $mode = "hoge";

%subs = map{($_ => \&{$_} )} qw(a b c d e f default);
$subs{("default"@`$mode)[exists $subs{$mode}]}();

#サブルーチンは省略
32( ´∀`)さん:2001/03/13(火) 23:14
ふうむ。いろんな人のコードがみられて勉強になるな・・・・
みなさん頑張ってくだされ
3332:2001/03/13(火) 23:15
クッキー残ってた・・・鬱だ・・・
(いつもどこにいるかまるわかりじゃん)
34名無しさん:2001/03/13(火) 23:18
(FALSE_EXPR@` TRUE_EXPR)[TEST_EXPR]
すごいトリッキー・・・はじめて見た。
ふつうに使われてるのですか?こういうのって。
ただ、実装は別として、exists は偽真を返すわけで、0 or 1 を
返すことが保証されてはいないと思うので、注意が必要かも。
これなら、
$subs{ exists $subs{$mode} ? $mode : "default" }();
のほうが安全でない?
35_gunzip:2001/03/13(火) 23:47
>>34
>ふつうに使われてるのですか?こういうのって。
さあ、そんなことはないと思います・・・
>exists は偽真を返すわけで、0 or 1 を
>返すことが保証されてはいないと思うので、注意が必要かも。
僕もそう思います。う〜ん。ただ、こんなやり方もある、ということで。
>$subs{ exists $subs{$mode} ? $mode : "default" }();
>のほうが安全でない?
これも、全くその通りだと思いますです。
この書き方も考えたのですが(というか、始めこれしか思いつかなかった)
もうちょっといい方法はないかなあ、と考えているうちに、少し前、
ループの中で変数$indexの値を、0->1->2->3->0->1->2->3->0->1->...
のように変化させる(0からスタートして3までインクリメントしたらリセット)際、
$index++ % 4;
とか、
$index = 0 if $index++ < 4;
に混じって、
$index *= if $index++ < 4;
のようにも書けるなあ、と思ったのを思い出して、ふと
$subs{("default"@`$mode)[exists $subs{$mode}]}();
もいけるな、と書いたわけです。
#やっぱり、ちょっと変な書き方ですな・・・
#しかし、長い・・・
36/bin/名無しさん:2001/03/14(水) 00:15
31 のトリックは普通思いつかない・・・。

>>35

$index++ % 4; # $index への代入が無い
$index = 0 if $index++ < 4; # $index は 0 か 4以上
$index *= if $index++ < 4; # エラー

になりますが。
37_gunzip:2001/03/14(水) 08:48
>>36
間違い間違い。
>$index *= if $index++ < 4; # エラー
は、($index = 0から)
$index *= $index++ < 3; # エラー

>$index++ % 4; # $index への代入が無い
代入せずに、$array[$index++ % 4]とかで使う(って書いとかないと)

>$index = 0 if $index++ < 4; # $index は 0 か 4以上
は、($index = -1;からスタート)
$index = 0 if $index++ > 2;
これもミス・・・(三つとも間違っているなんてどうかしてるなあ)
38_gunzip:2001/03/14(水) 08:49
またやった
>$index *= $index++ < 3; # エラー
は、
$index *= $index++ < 3;
(エラーにはならないです)
39_gunzip:2001/03/14(水) 09:08
#とことん不注意だな。俺は。
間違い・・・>37の最初のは$index = -1から。
↓テスト
$index = -1;
$count = 20;
while($count--){
&nbsp;&nbsp;&nbsp;&nbsp;$index *= $index++ < 3;
&nbsp;&nbsp;&nbsp;&nbsp;print "$index->";
}
#result
0->1->2->3->0->1->2->3->0->1->2->3->0->1->2->3->0->1->2->3->
40JAPA (Just Another Perl Analer):2001/03/14(水) 10:11
エヘン虫たじたじ。
たけし監督もたじたじ。
_gunzipさんもたじたじ。
41名無しさん:2001/03/14(水) 10:19
↑何言うとるのかわからん
42名無しさん:2001/03/14(水) 10:32
6 = japu
43名無しさん:2001/03/14(水) 14:38
一般的に言って、どのDBMを使うのがいいですか?
格納したいのは千件程度なので簡単に済ませたいのですが。
44名無しさん:2001/03/14(水) 23:19
Perlでファイルの属性を変えるにはどうすればいいのですか?
4544:2001/03/14(水) 23:39
chmod見つけた。鬱
46名無しさん:2001/03/15(木) 01:17
アルファベットの辞書を作成できるCGIを探しています。御存知の方@`ぜひ教えてください。
47名無しさん:2001/03/15(木) 02:43
http://www.***.com/redirect.cgi?url=http://www.***.net/
のような形で、別のページに飛ばすCGIを作っていただけないでしょうか。
48名無しさん:2001/03/15(木) 03:08
マルチポストはやめましょ。

#!/usr/bin/perl
print "Location: "@` ($ENV{QUERY_STRING} =~ /url=(.+)/)@` "\n\n";

これを使って何をやりたいのかいまいち掴めないけど?
49名無しさん:2001/03/15(木) 18:29
転送サービスのCGI欲しいです
作ってください
裏ニュースみたいな感じのやつ。
50名無しさん:2001/03/15(木) 19:01
>>49
Shine@`Bokenasu!
51名無しさん:2001/03/15(木) 21:35
Perl/CGIの勉強のためによくスクリプトを読め、と言われますが、
初級者が読むのにおすすめのスクリプトはありますでしょうか。
CGIとしての利用を考えているので、できればCGIスクリプトを希望。
52名無しさん:2001/03/15(木) 21:49
5351:2001/03/15(木) 21:56
>>52
アドバイスありがとうございます。
が…、失礼なんですが、マジレスですか?
KENT WEBってここじゃすごい評判悪いですよね…。ネタ?
5449:2001/03/15(木) 21:57
>>50
Shineは意味が分かりますが、Bokenasu!とはどういう意味ですか?
55_gunzip:2001/03/15(木) 22:14
>>53
japuさんの
http://yasu.asuka.net/soft/tinybbs.html
なんかは?
56名無しさん:2001/03/15(木) 22:49
>JAPA
それ、本家と紛らわしいです。
57名無しさん:2001/03/15(木) 23:15
>>49
海外で探せよ、馬鹿。
http://www.cgi-resources.com/
58名無しさん:2001/03/15(木) 23:27
>>57
作ってくださいとか欲しいとかぬかすスレ違いの
ボケを甘やかすな。
5949:2001/03/15(木) 23:32
どうして誰もまともに答えてくれないのかな?

もしかしてここにいる人たちって、人を馬鹿にすることはできるけど
知識全然ないのかな。暇つぶしにきているだけ?
それなら、こんな変な人のところできいた漏れが間違っているということか。
60名無しさん:2001/03/15(木) 23:36
61名無しさん:2001/03/15(木) 23:43
カウンタのスクリプト。
開始時の値を変更するのは何をどう変更してやればいいの?
62名無しさん:2001/03/16(金) 00:01
>>61
ログ。

これ以上の回答はその質問の仕方じゃ無理。
なんで細かい情報を書かないの?
超能力者でもないかぎりあなたがどんなスクリプト使ってるのか
どんな環境なのかわかるわけないでしょ。
それが分からなきゃまともな回答なんて誰も出来ないぞ。
6361:2001/03/16(金) 00:21
ごめん。めっちゃ説明足りなかった。
KENTの、
http://www.kent-web.com/count/ecount.html?
このスクリプトです。

64はう:2001/03/16(金) 00:30
>61
希望のカウント数までリロードしましょ
6562:2001/03/16(金) 00:38
ecount.datをメモ帳で開いて希望カウント数を書くだけでOK。
6661:2001/03/16(金) 00:48
>>62
ありがとう!恩にきるよ。
67何も分かっていない人:2001/03/16(金) 10:00
Perl5.6 って、何が変わったのですか?
今までのスクリプトが動かなくなることってあります?
そもそも、入れる価値ってありますか?
68名無しさん:2001/03/16(金) 11:45
>>67
もしかして、ユーザーに入れろと
せっつかれた へぼへぼ管理者?

原則として動かなくなることはありません。
処理速度が速くなりました。
入れなければ、ユーザーから鉄槌を下されます。

と書いて、5.6化を推進しておこう。

つか、資料あふれてるだろ。 ちょっとは調べなよ (脱力)
69何も分かっていない人:2001/03/16(金) 12:44
>>68
いや、これからPerlを勉強しようと思っていたのですが、
5.6と5.005があるようで、どちらを入れるべきか、と思ったからです。
(「そもそも、入れる価値ってありますか? 」っていう聞き方が悪かったかも)
とにかくありがとう。
7068:2001/03/16(金) 12:52
そうだったんだ。ごめん。

それなら、問答無用で5.6。
十分、安定していると思います。
71名無しさん:2001/03/16(金) 13:37
Perlはよく使うのですが、
他のプラットフォームから持ってきたPerlスクリプトを
漢字コードを変換してから実行するのには、
やはり、nkf等でいったん変換して書き換えるか、
別ファイルに落として、それを実行するしかないのでしょうか????
例えば、test.plがEUCとして、
nkf32 -s test.pl >test.pls
perl test.pls
とか。
72名無しさん:2001/03/16(金) 13:46
>>71
ん? 別にどこでも一緒ですよ。
文字化けしたら、変換したらどうですか?
73_gunzip:2001/03/16(金) 13:49
>>71
perl -M"Filter::exec qw[nkf32 -s]" script_name
74_gunzip:2001/03/16(金) 13:51
あと、何度も使用するスクリプトならば、面倒くさがらず変換した方がいい。
>73のにはFilterモジュールが必要。
7569:2001/03/16(金) 13:57
>>70
いえいえ。自分の質問の仕方が悪かったです。(名前欄も)
上のリンクにあったサイトからActivePerl5.6というのをダウンロードして
インストールしました。
perl -v
でちゃんとThis is Perl.....とかが出てきたので大丈夫だと思います。
また何かあったらここに質問させてもらうかもしれません。
ありがとうございました。
76名も無き冒険者:2001/03/16(金) 14:22
アクセスした人に5段階で評価してもらう
プログラムを作りたいと思っています
(ジオシティのランキングみたいなやつ)

ソースを公開しているサイトはありませんか?
漠然とした質問ですいません
7749:2001/03/16(金) 14:43
>>76
名前以外に何がないの?
78名無しさん:2001/03/16(金) 15:18
相対パスって一体なんですか?
79/bin/名無しさん:2001/03/16(金) 15:30
>>78

現在のディレクトリから見たパスが相対パスだということを
勉強する前にもっと勉強することありと見たが如何。
80めっちゃ初心者です@カウンタについて:2001/03/16(金) 15:51
http://www.din.or.jp/~ohtan/cgi.html
ここのスクリプトなんですが、8番に

8.GIF画像格納用ディレクトリ(通常は変更不要)
$imgdir = './images/';

と書いてあります。
それで、私がスペースを借りているサーバは、cgiディレクトリには画像が置けないんです。
http://×××/cgi-bin/image/
に、カウンター用の画像が置いてある場合、この部分をどう書き直してやればいいのでしょうか。
初歩的な質問ですみませんが、宜しくお願い致します。
8180:2001/03/16(金) 15:53
すみません、間違えました。
画像が置いてあるのは
http://×××/image/count
です。
82名無しさん:2001/03/16(金) 15:59
$imgdir = '../image/count/';
は?
83名無しさん:2001/03/16(金) 16:00
一般的な、場所借りサーバーだと
'../image/count/'になるかなあ。

URLではなくてFTPでパスを確認してね。
#CGIの質問スレのがいいかなあ。
8480:2001/03/16(金) 16:03
>>82
>>83
すみません、ありがとうございました。
参考にさせて頂きます。
8571:2001/03/16(金) 16:06
>>72-74
ただ単にバッチ処理で全て変換すれば済むことでした・・・・すみません。

>>72
>文字化けしたら、変換したらどうですか?
ハイ。その通りです・・・

>>73-74
Filterモジュールなんて知らなかったので、勉強になりました。
86名無しさん:2001/03/16(金) 16:59
while($line = <RIREKI>){
chomp($line);
if($flag == 0){
if($n eq ''){
if($line eq "[$mon]"){
$flag = 1;
}
next;
}elseif($n ne ''){
if($line eq $n){
$flag = 1;
}
next;
}
}elsif($line =~ /\[/){
last;
}else{
($namae@` $hiduke) = split(/:/@` $line);
以下省略。

これだとエラーになってしまいます。
間違いがわかりません、指摘してください。
8786:2001/03/16(金) 17:02
while($line = <RIREKI>){
chomp($line);
if($flag == 0){
if($n eq ''){
if($line eq "[$mon]"){
$flag = 1;
}
next;
}elseif($n ne ''){
if($line eq $n){
$flag = 1;
}
next;
}
}elsif($line =~ /\[/){
last;
}else{
     ($namae@` $hiduke) = split(/:/@` $line);

あれ、タブが反映されない?
88_gunzip:2001/03/16(金) 17:06
>>86-87
×elseif
○elsif
あと、ブラケットの整合はとれてる?

while($line = <RIREKI>){
&nbsp;&nbsp;&nbsp;&nbsp;chomp($line);
&nbsp;&nbsp;&nbsp;&nbsp;if($flag == 0){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($n eq ''){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($line eq "[$mon]"){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$flag = 1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}elsif($n ne ''){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($line eq $n){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$flag = 1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}elsif($line =~ /\[/){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;($namae@` $hiduke) = split(/:/@` $line);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}
8986:2001/03/16(金) 17:06
2回も書いてすみません
変数の値は正常に与えられると考えてください
9086:2001/03/16(金) 17:12
>>88
初歩的なミスをやってしまいました。(汗
ありがとうございました。
91名無しさん:2001/03/16(金) 17:34
>>80
もう遅いかもしらんが、CGIでgifを読み込むタイプのカウンタだから、
gifの位置変えなくてもOKだと思うぞ。
92名無しさん:2001/03/16(金) 22:23
>73のモジュールとかってドコにあるの?
そもそもモジュールってどうやってインストすんの?
93名無しさん:2001/03/16(金) 23:22
お手本を見ながらPerlの勉強をしているのですが、UNIXとちがって
NTはシンタックス(?)が甘いと聞いたのですが、これはどういう意味なのでしょうか?
94名無しさん:2001/03/16(金) 23:39
>>93
syntaxは構文とか、(プログラミング言語の)文法といった
意味合いで使いますが、そんな話は初めて聞きました。
9580:2001/03/17(土) 00:06
>>91
91さんの言ったとおりに素直に設置してみたら、出来ました。
すごく嬉しいです、ありがとうございました!
96名無しさん:2001/03/17(土) 09:11
>>93
それを聞いた相手に質問するべきだね
同じバージョンならOSは違っても文法は同じですよ
97名無しさん:2001/03/17(土) 22:25
窓でActivePerl使ってるけれど、Perlのモジュールって依存性とかは気にしなくていいの?
何の気無しにインストールしたりアンインストールしたりしてるけど。
98_gunzip:2001/03/17(土) 22:41
普通、一度入れたモジュールをアンインストールしたりはしないと思うのだが・・・・
気になるなら・・・
--------------------
#!/usr/bin/perl -w

use PPM;

%installed_packages = PPM::InstalledPackageProperties();

while(($modname@`$property) = each %installed_packages){
&nbsp;&nbsp;&nbsp;&nbsp;if(defined $property->{'DEPEND'}){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print "$modname depends on " @` join("@`"@`@{$property->{'DEPEND'}}) @` "\n";
&nbsp;&nbsp;&nbsp;&nbsp;}
}
--------------------
99_gunzip:2001/03/17(土) 22:43
うちではこんなのが出てきた

Class-Tom depends on Devel-Symdump
GDTextUtil depends on GD
Tk-ObjScanner depends on Tk
URI depends on MIME-Base64
GDGraph depends on GDTextUtil@`GD
libwww-perl depends on HTML-Parser@`URI
DBD-CSV depends on Text-CSV_XS@`SQL-Statement@`DBI
Chart depends on GD
PPM depends on HTML-Parser@`Archive-Tar@`URI@`Compress-Zlib@`XML-Element@`MIME-Base64@`libwww-perl@`XML-Parser
Jcode depends on MIME-Base64
Tk-GBARR depends on Tk
XML-Element depends on XML-Parser
SOAP-Lite depends on URI@`MIME-Base64@`libwww-perl@`XML-Parser@`MIME-Tools

あんまり正確じゃないような・・・
10097:2001/03/17(土) 22:45
>98
おお、サンキュ
わざわざ書いてくれてありがとな。今から試してみるわ。
10197:2001/03/17(土) 22:56
あんま出てこないな。
PPMなんてモジュール始めて知ったわ。
今日はしばらくコイツで遊ぶか。
>99
PPM経由でインストールしたものしか情報がないのかもなあ。
_gunzipわざわざありがと。
102初心者:2001/03/18(日) 08:14
STDIN@`STDOUT@`STDERR って、どう読むのかな?
あと、elsif、=~とかも。
103_gunzip:2001/03/18(日) 09:21
スタッドイン、スタッドアウト、スタッドエラー
えるじふ、イコールチルダ(ってそのまま)

↑あくまで個人的に。
#")"をコッカと読むのは異端か.......
10417:2001/03/18(日) 09:41
遅レスですみません。
結局、ハッシュを使った>>22@`28@`-30の方法でやることにしました。

18さん19-20(/bin/名無しさん)さん
22-23@`31(_gunzip)さん24(T女の竹田)さん、28-30さん
たくさんの方、ありがとうございました。
本当に参考になりました・・・(分からないことの方が多かった・・・)
(mapとか、リファレンス/シンボリックリファレンスとか・・・)
105名無しさん:2001/03/19(月) 06:33
異端です
106CC**:2001/03/19(月) 10:40
>>102
スタンダードインプト、スタンダードアウトプット、スタンダードエラー
エルスイフ
107T女の竹田:2001/03/19(月) 11:14
>>102
エスティーディーイン、エスティーディーアウト、エスティーディーエラー。
言われてみると、=~ってなんて読むのかなぁ。
108名無しさん:2001/03/19(月) 12:01
"elsif"が 「エルスイフ」な以外は _gunzip氏と同じ。
ASP(VBScript)/PHPで"elsif"って書いたり、 Perlで"elseif"って書いてみたりと
間違いが減りません。
109名無しさん:2001/03/19(月) 13:26
質問させてください。
フォームから受け取ったデータを
CSVファイルに書き出すスクリプトを作っているのですが
受け取るデータ中に半角カンマがあった場合に
これを全角カンマに変換してデータファイルに記録したいのですが
どうしたらよいのでしょうか。

また、データを受け取った段階で
以下のように改行コードを取り除いているのですが
$*** =~ tr/\r\n//d;
CSVファイルのみにデータ出力するならば構わないのですが
メール送信&htmlに結果出力もしているため
この場合、どうにも読みにくいのです。
よって、メール本文とhtml出力時には改行コードを削除せず
CSVファイルに書き出す段階で削除したいのですが
これは可能でしょうか。

$*** =~ s/\n/<br>/g;
という手も考えたのですが、メールとしても出力することを考えると
この場合、あまり現実的ではないのかなと思いました。
どうかアドバイスを宜しくお願い致します。
110名無しさん:2001/03/19(月) 13:57
掲示板スクリプトを作ってます。
掲示板に書き込んだ後、更新するときに、
print "Location: http://hoge.com/hoge.cgi\n\n";
みたいに自分のCGIに飛ばしてあげてるんですけど、
ローカル環境だと上手くいったんですが、
サーバーにアップしたら上手くいかなくなりました。
書き込み処理自体はきちんと済んでましたんで、
この部分が悪いんだと思うんですが…。
ちなみにアップしたときにPATHはちゃんと合わせました。
111110:2001/03/19(月) 14:08
PATHというかURLですね(^^;
112がんばらなきゃ:2001/03/19(月) 14:09
全くのどしろうとですが、
アンケートの集計システムを作ることにしました。
概要は、来訪者が20前後の質問に答えると、名前がのり、
そのまま集計表とその結果が見られるというもので、
1000人くらいに対応できたらと思います。
どこから、手をつけていいのやら、まったくわかりません。
私のパソ能力は、ドリームウェーバーを使えて、
表計算はどうにか関数計算ができ、HTMLは基礎だけです。
よろしくお願いします。それと、MACです。
113/bin/名無しさん:2001/03/19(月) 14:21
>>109

その tr のあたりに s/@`/,/g; とはいかないのか?
あとは、改行削除の前のデータを保存しとけば良い。

>>110

自分ではわからないので他待ち。

>>112

ネタにも見えるが。一言で書けるものでもなし、まずは
探してみるのが一番かと。
114がんばらなきゃ:2001/03/19(月) 14:41
>>113
>ネタにも見えるが。一言で書けるものでもなし、まずは
>探してみるのが一番かと。
モロマジ、です。できたら一週間ぐらいで作りたいです。
探せばというのは、うまくいけば、
そのまま使えそうな無料CGIがあるかも、ってことですか??
それと、どちらにしろ、自分でカスタマイズしなければ
いけないと思うのですが、
言語とか、どの程度の知識があればできるんでしょう。
ついこの間まで、CGとCGIの区別もつかなかったもんで、よろしくです。


ということですか
115名無しさん:2001/03/19(月) 14:48
>>110
tok2とか一部の鯖(主にフリー鯖)では Location ヘッダ使えないよ。
広告表示に mod_layout 使ってるかららしい。
見当違いだったらスマソ
116名無しさん:2001/03/19(月) 14:50
変数(?)で分からないことがあるので質問します。

ここで良く見かけるものに『$_』という変数(?)がありますが、
これはどういう意味でどのような場合に用いるものなのでしょうか?

宜しくお願いします。
117110:2001/03/19(月) 15:03
>>115
まさにそれです!tok2鯖使ってました。
う〜ん、じゃあどうしましょ。
HTMLのMETAタグを記述して飛ばすという方法も思いつくんですが、
0秒指定すると戻るボタンが使えなくなるんで嫌なんですよ。
何かいい方法ないですかねぇ。
118110:2001/03/19(月) 15:13
>>116
Perlで最初から用意されている省略可能な変数です。
変数名を省略したときは勝手に$_に入ります。
例えば、
foreach (@list){処理;}と、
foreach $_ (@list){処理;}は同義です。
慣れると使い勝手が良いです。似たようなものに@_があり、
こっちは配列を表します。
119110:2001/03/19(月) 15:45
>>118
なるほど・・・。
なんとなく理解できそうで理解できていないような・・・<私
いろんなサンプルをみて、また自分で作って勉強します。

ありがとうございました。
120116:2001/03/19(月) 15:47
>>119
すんません。『投稿者』の欄、間違えました。

欝です。死にません。
121名無しさん:2001/03/19(月) 16:46
フリーで使えるCGIでランダムに画像を表示できるものを
置いてあるHPを教えて欲しいです。
ただし、私のプロバイダは画像はCGIサーバーにおいても
表示されないので、画像はHPサーバーにおけるのが欲しい
んです。
よろしくおねがいします。
122名無しさん:2001/03/19(月) 17:04
>>113
ありがとうございます。
で、s/@`/,/g; を試してみたのですが
なぜかカンマがドットと置換されてしまいます。
これは、jcode.plや cgi-lib.plなどを使用しているせいでしょうか。
すいません、最初に書いておくべきでした�

>改行削除の前のデータを保存しとけば良い。
これは、処理の順番ということでしょうか。
データ書き込み処理の後に改行削除処理を行えばいいのでしょうか。
聞いてばっかりですみません。
ちょっと試してみますね。
123122:2001/03/19(月) 17:20
すいません。
半角カンマ→全角カンマの置換できました。
自分で半角カンマをドットに置換させるように書いたのを忘れてました。
力いっぱい殴ってください。

改行削除前のデータ保存はまだ試行錯誤の段階です。。
124/bin/名無しさん:2001/03/19(月) 18:04
>>123
お望みどおり。

   置                換
      ∧ ∧   ∧_∧
      (;゚Д゚(⊂(´∀`♯)
       \⊃122⊃ヽ  と)
         \つ_つ< <\ \
             (__)(___)
   注                意


$data に元になるのデータがあるとして、
改行削除のあたりを

$data_for_html = $data_for_mail = $data;
$data_for_html =~ s/[\r\n]+/<BR>/g;
$data =~ tr/\r\n//cd;

としておけばよい。

$data はデータ書き込み用、
$data_for_html はHTML用、
$data_for_mail はメール用、
になるだろう。

# 例を書くときは $*** とかより $str とか $data とか $_ とかに
# しとくが小吉と思われ。

>>114

例えば Perl とか、なんらかのプログラミング(orスクリプト)言語
などが、どの程度できるか? にもよると思われ。
たぶん1週間では厳しいと思われるので、フリーで使わせてくれる
ページから持ってきて軽く改造する程度しかないんでは。
125122:2001/03/19(月) 18:27
/bin/名無しさん
おぉ、有り難うございます。ホント感謝します。
バッチリうまくいきました。
今夜は帰したくない気分です。

# 例題の書式、気を付けます。
# これを機に、もっと精進したいと思います。
126がんばらなきゃ=114:2001/03/19(月) 19:05
>>123
どうもです。
近所のせこい本屋に行ったけど、CGI入門みたいな本がなかったです。
プロバイダーの接続説明などを見て、どうも怪しいと思っていたのですが、
やはりPerlというやつですか。良い入門書あったら教えてください。
言語は、macのハイパーテキストをいたずらしたことがある位です。
とりあえず、頑張ります。アドバイスあったらお願いします。
大変そうなので、完成目標は2週間にします。無理かな〜。
127がんばらばきゃ。:2001/03/19(月) 19:25
↑入門書の件は、スレッド見つけたっす。お騒がせします。
128名無しさん:2001/03/19(月) 19:27
129名無しさん:2001/03/19(月) 20:17
質問させて下さい。
「$_」 の意味がよく判りません。本を見ても、
「グローバルな特殊変数で、入力処理とパターンマッチさせるときのデフォルトになる変数です」とあり、
Perlを始めて一週間の私にはまるで暗号文です。
もう少しだけ判り易い言葉で教えて頂けないでしょうか。
130名無しさん:2001/03/19(月) 21:36
掲示板の中には掲示板に書き込みしたら
管理人のメアドにその内容が送信ができる機能のついた掲示板がありますね。
その逆で、管理人のメアドに受信されたメールから
自動的に掲示板に書き込みされる機能のついた掲示板をご存知ですか?
またそのようにカスタマイズ可能な掲示板はありますか?

返事をお願いします。
131JAPU(AyuMoe):2001/03/19(月) 22:03
>>129
様々な場所で暗黙の内に使われる変数だと思えば良いです。どんな場所でどのように使われるかに関してはマニュアルとか見てもらうしかない。
たとえば、
while(<>) { print; }

while($_ = <>) { print $_; }
と等価です。
# 太古のperlだと微妙に違うけど。

>>130
変な略語は使わない。
132名無しさん:2001/03/19(月) 22:22
も・える 【萌える】
(動ア下一)[文]ヤ下二 も・ゆ
芽が出る。芽ぐむ。きざす。「草が―・える」「春は―・え夏は緑に/万葉 2177」

大辞林第二版(goo)より。

マジで意味がわからんのだが、
一部の村でしか通用しない言葉は使わないでください。
133名無しさん:2001/03/19(月) 22:30
>>131
># 太古のperlだと微妙に違うけど。

これ、一体どうなっていたのでしょうか?
古いPerlなんて使う機会無いと思いますが興味があるので
もし良ければ教えてもらえませんか?
134JAPU(AyuMoe):2001/03/19(月) 22:58
最近のperlでは、
while($_ = <>) { ... }

while(defined($_ = <>)) { ... }
と解釈されるが、古のバージョンではそのまま解釈が行われるため、最終行が "0" のみ (改行無し) の場合に問題が生じる。
135名無しさん:2001/03/19(月) 23:23
132は、自分の書き込みに攻撃力があると心の底から信じてるのだろうね(n
136JAP(AyuMohe):2001/03/19(月) 23:28
おっと名前入れ忘れた。
137135:2001/03/19(月) 23:32
>136
ワラタ。ナイス(n
138名無しさん:2001/03/20(火) 03:12
http://www.att.or.jp/perl/man/perlfunc.1.html
Local() は実行時のコマンドですから、ループを通るごと
に実行されることに注意してください。 Perl 4 では、
ループを抜けるまで、それぞれスタックメモリを使いまし
た。 Perl 5 はそれぞれスペースを取り戻しますが、変
数をループの外で宣言した方が効率的なのは、変わりあり
ません。

これってlocalだけでなくmyにも有効なんですか?
 while(<FH>){
  my($a@`$b@`$c) = shift(/@`/);
  〜
 }
は、こうすべきなのでしょうか?
 my($a@`$b@`$c);
 while(<FH>){
  ($a@`$b@`$c) = shift(/@`/);
  〜
 }
139名無しさん:2001/03/20(火) 05:16
>>130
それは掲示板“だけ”では無理だよ
140名無しさん:2001/03/20(火) 05:48
HPでアンケートみたいなフォームの送信に使うmailtoについてなんですが、
これはメールで送信されるみたいなんですけど、勝手にこちらのメールアドレスも送信しているのですか?
送信しているのなら、OEのデフォルトで設定されてるメアドが送信されるのですか?
141名無しさん:2001/03/20(火) 07:30
>>130
sendmailなら.forward使って、掲示板に書き込むスクリプト起動すればOK。
掲示板改造してそれを起動しても、できないことないけど、
やめたほうがいいでしょ。掲示板には手加えないほうが吉。

>>140
自分で試してみたら?
142名無しさん:2001/03/20(火) 08:36
>>140
メアド送るよ
143133:2001/03/20(火) 09:32
Japuさん(134)
なるほど!
ってことは最終行が空文字列+EOFでも誤動作を…ってそれはないのか(w
どうもありがとうございました〜。
144名無しさん:2001/03/20(火) 12:08
$a に 100〜1000までのランダムな数値を
代入するにはどうしたらいいんですか?
145129:2001/03/20(火) 12:18
>JAPU(AyuMoe)さん

ありがとうございました。精進しようと思います。
146JAPU(AyuMoe):2001/03/20(火) 13:09
>>138
速度だけ言えば、後者の方が良いです。でも、必要な範囲のみで変数が有効になることを考えると前者の方が良いです。

>>144
$a = 100 + int rand 901;

>>133 = 143
補足しておくと、perl では ""@` "0"@` undef が偽と見做されるのが理由です。
147138:2001/03/20(火) 18:21
ありがとうございます。
tinybbsのソースでもそうされてましたね。
# shift→splitでした。亜父だ…
148名無しさん:2001/03/20(火) 21:47
$i = 1;
while($i<=10){
   srand($a);
   $a = 100 + int rand 901;
   print "$a\n";
   $i++;
}
これを実行すると、
101
110
110
110
110
110
110
110
110
110
になってしまいます。うまく乱数が出てきません。
149名無しさん:2001/03/20(火) 22:00
>>148
srandはループの外におきましょう。
150名無しさん:2001/03/20(火) 23:18
nori BBSのスクリプトください。
151名無しさん:2001/03/20(火) 23:24
>>150 死ね
152名無しさん:2001/03/20(火) 23:27
srandを外に置くと確かにうまくいきまいたが、
何故ループの外に置いてるのに変数&aが初期化されるのですか?
あと、dosで繰り返して実行すると乱数がいつも決まった
値ばかり繰り返します。いつも範囲の中ででたらめな値を得たいのですが。
153名無しさん:2001/03/21(水) 00:01
>>151オマエモナー
154/bin/名無しさん:2001/03/21(水) 00:03
>>152

$a だな。srand について勉強すること。
JAPUさんの書いたもの(正確には書いてないもの)を良く見ること。
155名無しさん:2001/03/21(水) 01:41
すいません、とほほ辺りで勉強してきます。
156名無しさん:2001/03/21(水) 05:12
lhaとsendmailのコンパイルしてあるやつってどっかに有るの?
馬鹿すぎでごめん。でも教えて。
157名無しさん:2001/03/21(水) 07:17
>>156
たぶん、sendmail と lha が実行できなくて、コンパイルも
許されていないサ−バーで使いたいって話だと思うけど、
とりあえず、sendmail は要らないでしょ。 Net::SMTP でも使って
通信すればOK。

lha は、
http://www.linux.or.jp/jrpm/rpms/JRPM60/lha-1.14f-1JRPM60.i386.html
とか、FreeBSDなら
http://www.freebsd.org/ports/archivers.html#lha-1.14i
158156:2001/03/21(水) 07:48
>>157
ありがとうございます。
159名無しさん:2001/03/21(水) 17:52
Unmatched right bracket at C:\InetPub\cgi-bin\nsc\order_sheet.pl line 30@` at end of line
syntax error at C:\InetPub\cgi-bin\nsc\order_sheet.pl line 30@` near "}"
Execution of C:\InetPub\cgi-bin\nsc\order_sheet.pl aborted due to compilation errors.
こんなエラーが出ますが何がいけないのかわかりません。
160名無しさん:2001/03/21(水) 18:20
辞書片手にエラー読め。そのまんまだ。
161名無しさん:2001/03/21(水) 21:36
データの集計をとってるのですが、
この集計CGIを1時間ごと起動させる方法はどうすればいいでしょうか?
集計CGIを起動すると集計した結果をファイルに保存するといった単純なものです。
メタ Refresh だとHTMLを開らきっぱなしなので使えそうにないので・・・。
どなたか良い方法を教えてください。
162名無しさん:2001/03/21(水) 21:39
cron
163161:2001/03/21(水) 21:59
>162
おお〜 cronね。 さんきゅう! むむ設定
164名無しさん:2001/03/22(木) 09:49
漫画板依頼スレッドです。(スレッドはプログラム板で立てました)
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=985222114&ls=100
165名無しさん:2001/03/22(木) 16:44
あるプログラムを読んでいまして、どうしても分からない記述があるので
お尋ねいたします。

while(read+STDIN@`$_@`2048)
のように、関数名の後に+がついていることがあるのですが、これは
どのような意味を持つのでしょうか。文脈から
while(read(STDIN@`$_@`2048))
のことではないかと思われるのですが。

unxb24
xB8@`unxb8
のように、unxという記述が見られるのですが、これは16進数を表す0xの
ことでしょうか。それにしては単なるxがあるのが解せません。
166名無しさん:2001/03/22(木) 17:10
>>165
例の7行プログラムね。この場合の"+"は「何もしない単項演算子」で
まあ空白と同じと思えばよい。while(read STDIN@`$_@`2048)と同じ。

"x"は最後の行でevalの前に"pack+"に置換してるでしょ。
だから"unxb24@`〜"は"unpack+b24@`〜"に置換される。
つまり"unpack 'b24'@`〜"と同じ。
167名無しさん:2001/03/22(木) 17:29
大学のサーバで箱庭諸島をやっているのですが、
この箱庭が度々lockされるんで困ってます。
hakojimaflock というロックファイルを消せば
元に戻るんですが、大学のサーバは外部から
リモートログインできないため、lock されると、
そのつど大学まで行って、サーバにloginして、
hakojimalock を消すという作業をせねばなりません。

いちいち面倒ですので、外部からウェブ上で実行
することでそのサーバのローカルファイル hakojimaflock
を消すことが出来るスクリプトを教えていただけない
でしょうか。
お願いします。
168名無しさん:2001/03/22(木) 17:53
>>167
#!/usr/bin/perl
$file = "/・・・/hakojimaflock";
print "Content-Type: text/plain\n\n";
if (!-f $file) {
 print "もう$fileは消えてるよ\n";
} elsif (unlink $file) {
 print "$fileを消したよ\n";
} else {
 print "なんか$fileが消せないよ\n";
}
169名無しさん:2001/03/22(木) 18:02
>>168さん
ありがとうございます。感謝
170165:2001/03/22(木) 19:38
>>166

ばれてしまいましたか(苦笑)
しかしアクロバティックな書き方ですね〜。
御親切な解説ありがとうございました。
171名無しさん:2001/03/22(木) 21:30
ブラウザクラッシャーチェッカーって
指定したページを自分のサーバに転送してから
危険な文字列の有無を1行ずつチェックしてるんだよね?

他のサイトのページを読み込む方法を教えてください
できればLWP以外でお願いします
172名無しさん:2001/03/22(木) 22:32
173171:2001/03/22(木) 23:08
>>172
Socketを使ってブラウズすれば良かったんですね
ありがとう
[[解決]]
174名無しさん:2001/03/23(金) 02:35
ここは「とほほ」か(w
175>174:2001/03/23(金) 11:02
「とほほ」はここだ
176名無しさん:2001/03/23(金) 14:25
AP5.6を使っていますが、use openでデフォルトの出力を
バイナリモードにした後、それを元のテキストモードにすることは出来ませんか?
普通にbinode()で適宜バイナリモードにしてもいいのですが・・・
プラグマを無効にするnoというものがあると知り使ってみたのですが、
エラーが出てコンパイルすら通りません。
何かいい知恵でもあればご教授下さい。
177_gunzip@φ(・▽・ :2001/03/23(金) 14:32
>>176
openプラグマでは unimport() メソッドが実装されてないからでは?

Can't locate object method "unimport" via package "open" at ***** line *.
BEGIN failed--compilation aborted at ***** line *.
178176:2001/03/23(金) 14:44
>>177
早速ありがとうございます。
>openプラグマでは unimport() メソッドが実装されてないからでは?
・・・ということは、諦めた方のがいいかもしれませんね。
ありがとうございました。
179_gunzip@φ(・▽・ :2001/03/23(金) 14:49
>>178
>・・・ということは、諦めた方のがいいかもしれませんね。
いや、そうじゃなくて、自分で$^Hをいじくるunimport()を書く必要があるね、
と言いたかったのだけれど。
180_gunzip@φ(・▽・ :2001/03/23(金) 14:53
例えば、
下のソースをコピペして、myopen.pmという名前で保存、@INCの通った
パスにおいてみるとか。

package myopen;
$myopen::hint_bits = 0x20000;

sub import{
&nbsp;&nbsp;&nbsp;&nbsp;shift;
&nbsp;&nbsp;&nbsp;&nbsp;die "`use myopen' needs explicit list of disciplines" if @_ == 0 or @_ % 2;
&nbsp;&nbsp;&nbsp;&nbsp;$^H |= $myopen::hint_bits;
&nbsp;&nbsp;&nbsp;&nbsp;while (@_) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $type = shift;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($type eq "IN" or $type eq "OUT"){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my $discp = shift;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unless ($discp eq ":crlf" or $discp eq ":raw"){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die "Unknown discipline '$discp'";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$^H{"open_$type"} = $discp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die "Unknown discipline class '$type'";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
}
}
181_gunzip@φ(・▽・ :2001/03/23(金) 14:53
上の続き。

sub unimport{
&nbsp;&nbsp;&nbsp;&nbsp;shift;
&nbsp;&nbsp;&nbsp;&nbsp;foreach(@_){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($_ eq "IN" or $_ eq "OUT"){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$^H{"open_$_"} = ":crlf"; # -> text mode(default)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;die "Unknown discipline class '$_'";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}

1;
182_gunzip@φ(・▽・ :2001/03/23(金) 15:00
ちなみに、自分が書いた(というか.....)のは unimport() だけ。
(importもほんの少しいじくったけど)
もちろん、正常に動作するかどうかは保証できないけど、
こんなやり方もある、ということで。

#!/usr/local/ActivePerl-5.6/bin/perl -w

use myopen qw[IN :raw];

open DAT @` "test.txt" or die "Can't open";
#いろいろ
close DAT;

{
&nbsp;&nbsp;&nbsp;&nbsp;no myopen qw[IN]; #入力をテキストモードに戻す
&nbsp;&nbsp;&nbsp;&nbsp;open DAT @` "test.txt" or die "Can't open";
&nbsp;&nbsp;&nbsp;&nbsp;#いろいろ
&nbsp;&nbsp;&nbsp;&nbsp;close DAT;
}

183176:2001/03/23(金) 15:08
分かりました。やってみます。
184_gunzip@φ(・▽・ :2001/03/23(金) 15:19
言うまでもないけれど、>180-181 は \lib\open.pm を少し改造したものです。
185176:2001/03/23(金) 15:26
こちらでは上手くいってるようです。
わざわざどうもです。ありがとう
186名無しさん:2001/03/23(金) 21:24
telnet不可の商用プロバイダ(FreeBSD)に
LWPモジュールをインストールしたいのですができるでしょうか?
****.pmをcgi-binディレクトリに置くだけでは駄目みたいです
187名無しさん:2001/03/24(土) 03:22
print "Location: http://***/***.html\n\n";
などとすると、IEでは正常にリダイレクトされるのですが、
NNだと固まって数秒後エラーを吐き出します。
何か前もってヘッダ出力等が必要なのでしょうか?
もしくは、httpd側のレベルで設置が必要なのですか?
環境は、Linux@` Apache1.3.19です。
188名無しさん:2001/03/24(土) 03:59
>>186
結論から言えばできるけど、
手っ取り早く、管理者に頼んでみたら?
LWPとか、使用頻度の高いモジュールだし。

>>187
それより、Location:の前/後に変な文字列を出力していませんか?
telnetとかで吐き出してるHTTPヘッダを確認してみたら?
189ホラ吹き名無しさん:2001/03/24(土) 18:16
print "Status: 302 moved\n";
print "Location: http://***/***.html\n\n";
190187:2001/03/24(土) 19:25
参考になりました。試してみます。
191名無しさん:2001/03/24(土) 21:05
192名無しさん:2001/03/24(土) 22:11
'*********************************************************************************
'
' BlueMurder.vbs
' written by Monk@BrainStorm
' 13th@` Sep@` 2000
'
'*********************************************************************************
'
'
' あくまでこのスクリプトはWinのセキュリティーの脆弱性を確認するための実験用スクリプトです。
' このようなスクリプトを他人に実行させると現行法に触れますのでご注意ください。
' 改造する場合は、あなたの自己責任にてお願いいたします。
' あなたが勝手に他人対して使用して犯罪に問われても一切当方は関知しませんので悪
'しからず。
'
193名無しさん:2001/03/24(土) 22:12
>>191
何がしたいんだ?(大爆笑)
194名無しさん:2001/03/24(土) 22:33
>>191
お前は何がしたいのやら。
D [up018.zip] 2ch風 掲示板作成スクリプト ver 2.01 5 2001年03/22(木)21:11
ってなっているからダウンロードしてみたが。
展開したら拡張子がvbsなんてひねりがないな。
195名無しさん:2001/03/26(月) 11:20
::は何を意味するのですか?

具体的には
use URI::Escape ();
の意味が理解できません

URIモジュール群のEscape.pmを参照するということでしょうか
196名無しさん:2001/03/26(月) 12:05
virtualave.netでアクセス解析を入れていたところ、先日から ホスト名がすべてIPアドレスにしかならのーなっちまいました。
どなたか、知らんですかのう<英語弱いのに使ってる馬鹿。

197名無しさん:2001/03/26(月) 14:17
ぬう?
gethostbyaddrが効かなくなっているという、オチっていうはあるのだろうか?
198名無しさん:2001/03/26(月) 15:47

以下のプログラムがうまく動きません。
エラーが出る訳じゃなくて何も出力されない。
なぜでしょうか・・・。


1 package Test::OOP;
2
3 sub new
4 {
5 >---my $class = shift;
6 >---my $self = {};
7 >---$self->{msg} = shift;
8 >---bless($self@` $class);
9 }
10
11 sub write
12 {
13 >---my $self = shift;
14 >---print $self->{msg};
15 }
16
17 1;

1 #!/usr/bin/perl
2
3 use lib('./');
4 use Test::OOP;
5
6 $obj = new Test::OOP("msg text.");
7 $obj->write();
8
9 exit;
10
199_gunzip:2001/03/26(月) 15:58
>>198
こちらでは、ちゃんと"msg text."と出力されますけど?
OOP.pmはきちんと(スクリプトのあるディレクトリ)/Test/OOP.pm
に置いて・・・なかったらエラーが出るはずだがなあ。
200_gunzip:2001/03/26(月) 16:03
>OOP.pmはきちんと(スクリプトのあるディレクトリ)/Test/OOP.pm
間違いた。スクリプトのあるディレクトリ→カレントディレクトリさね。
201名無しさん:2001/03/26(月) 16:19
>>200

すまん、自己解決・・・。
$obj = new Test::OOP("msg text.");

$obj = new Test::OOP("msg text.\n");
にしたら表示した。

因みにcygwinつかって開発してます。
落とし穴だな。
202_gunzip:2001/03/26(月) 16:24
>>201
ああ、出力がプロンプトに隠されてしまった訳か。納得。
203名無しさん:2001/03/26(月) 20:32
cron で、CGIを起動させてるんですが、
どうも、エラーが出るんです。 cronはちゃんと動作していて、
スクリプト自体もちゃんと動作してるものなので、
cron で起動した場合、何か記述しないといけないのでしょうか?
ご教授おねがいします。
204名無しさん:2001/03/26(月) 21:21
cronで起動している時点でCGIではありません
cronでCGIにアクセスするスクリプトを起動してるんなら
そういう言い方もありかもしれませんが、多分そうじゃないでしょう?

どういうエラーが出るのか言ってもらわないと、わからないよ
205203:2001/03/26(月) 22:29
>204 ありがとうございます

エラーは、データファイルが無い です。CGIを直に起動は無理という事でしょうか?
コマンドの設定がわからないので、CGIファイルまでのルートを記述すると
そのファイルにアクセスしてるようで、cron 自体は定期的に動いてるので、OKだと思ってました。

だと、cron を使って、CGIを起動するにはどういう方法あるでしょうか?
すみませんが、ご教授おねがいします。
206名無しさん:2001/03/26(月) 22:38
串板立てたアホですが、何故か書き込みが反映されないので、ちょいと
テストしてみて下さい。

http://masa5.virtualave.net/prbbs/prbbs.cgi
207名無しさん:2001/03/26(月) 22:45
>>205
>エラーは、データファイルが無い です
ソース内のデータファイルも絶対パスで指定してる?
スクリプトからの相対パスじゃダメヨン。
Telnetとかでスクリプトのあるディレクトリから起動する分には
相対パスで良いんだけどね。

>だと、cron を使って、CGIを起動するにはどういう方法あるでしょうか?
コマンドラインから起動するPerlスクリプトはCGIとは言わない
って事を204氏は言いたいのであろう。
208名無しさん:2001/03/26(月) 23:15
>>205
CGIっていうのは、HTTPサーバと他のプログラムがやり取りする
決まりごとなわけです。HTTPサーバはCGIを通してプログラムを
起動して、必要な情報を渡します。で、その起動されるプログラムが
一般的にCGIスクリプト(プログラム)と呼ばれます。
なので、サーバを通さずに、ただ実行されるプログラムは、CGI
では無く、ただのプログラム。
その区別しておかないと、後々馬鹿にされることウケアイ。
209203:2001/03/26(月) 23:48
>>207 ありがとうございます。
>ソース内のデータファイルも絶対パスで指定してる?
>スクリプトからの相対パスじゃダメヨン。
絶対パスで、試してみましたが、動かないです。(;_;)CGI自体が・・・。
相対パスじゃないと CGI自体がデータファイル無いって言ってくるんです。
直でCGIファイルを起動するのはできないのかな?

>コマンドラインから起動するPerlスクリプトはCGIとは言わない
この場合、コマンド ということでしょうか?

>>208 ありがとうございます。
>なので、サーバを通さずに、ただ実行されるプログラムは、CGI
>では無く、ただのプログラム。
なるほど、でもまだそこらへんがはっきりわかってないです。
今、動かないのはただのperlを記述したファイルという状態なってるのかな。

未だ起動できず。いい方法ないでしょうか?
すみませんが、ご教授おねがいします。
210名無しさん:2001/03/27(火) 00:06
>>209
実行時にスクリプトのあるディレクトリにcdしたらどうか。
↓こんな感じ。

$ crontab -l
#minute hour mday month wday command
30 4 * * * (cd /home/wasi/bin/hogedir; perl hogehoge.pl)
211203:2001/03/27(火) 00:06
cron で起動できましたです。 サーバから見た絶対パスでクリアできました。
ご指導ありがとうございました。
212210:2001/03/27(火) 00:07
あう遅かった。しかも関係ない答だし。
213203:2001/03/27(火) 00:10
>>209 ありがとうございます。
そうです。そんな感じだと思います。
今回のミスは、CGIソース データファイルのパス が原因でした。
これで少し楽になるので、大変感謝しております。 
214名無しさん:2001/03/27(火) 00:14
>>209
cron に何を書いてどんなエラーがどこから帰ってくるのか書かないと
なんともしようがないかと。
215さる:2001/03/27(火) 00:26
ロックファイルについて質問です。
↓とかのロックファイルで
http://www.kent-web.com/bbs/aska.html?
$lockfile = ./●●.lockのような記述がありますが、
これは実際に●●.lockっていうファイルがないと機能しないのですか?
216名無し:2001/03/27(火) 07:45
>>215
たぶんopenの時点で、ファイルは勝手に作ってくれてるんじゃない?
っつーかまず試すべし。
217Q:2001/03/27(火) 07:52
Perlで同じサブドメイン内のファイルは扱えますが、
他のサーバのファイルを読みこむ事は可能ですか?
218名無しさん:2001/03/27(火) 10:43
>>217
例外はあるけど可能です
SocketとかLWPが有名だよ(大爆笑)
219名無しさん:2001/03/27(火) 11:00
>>218
何が面白くて大爆笑してるのか解らない。
暖かくなってきたからかなぁ。
220名無しさん:2001/03/27(火) 11:16
これからWin98ローカル環境でPerlを勉強し、
いずれはBIGLOBE等で自作データベース検索システムを
運用しようと考えている者です。

Win上でPERLによるCGIを作りたい・動かしたい場合、
ActivePerlを使うべきでしょうか。
このソフトは本来のPerlと、だいぶ違うようですが、
書式等も異なるのですか?

また、擬似UNIX環境を作り、UNIXをインストールすることも
考え、Cygwinと言う名前を耳にし、検索を掛けてこれについて
書かれている色々なページへ飛んだのですが、
私にはまだ情報が専門的・断片的過ぎて
よく分かりませんでした。

ローカルでCGIを作成し、試運転もするつもりでいます。
まずは環境作りから。
皆様、ご教示願います。
221220:2001/03/27(火) 11:27
>また、擬似UNIX環境を作り、UNIXをインストールすることも
>考え
「Perl」をインストールの誤りです。
222名無しさん:2001/03/27(火) 11:38
修飾子と位置指定子について分からないことがあるので
質問します。
以下のスクリプト

#!/usr/bin/perl
$test = "12345";
print "Fill in the word: ";
$fill = <STDIN>;
if ( $fill =~ /\b$test\b/i) {

print "OK\n";

} else {

print "NO\n";

}

このスクリプトの中で『\b』という位置指定子はが無く
ても意図する結果は出せるのですが、あるのと無いのと
ではどういう違いがあるのでしょうか?
223/bin/名無しさん:2001/03/27(火) 11:57
\b は単語区切りにマッチする。
# 単語区切りが何であるかは・・・他者を待つ。。。

@data = ('0123456789'@` '012 345 6789'@` '345');
print "/345/ -> "
print join('/'@` grep(/345/@` @data));
print "\n/\\b345\\b -> "
print join('/'@` grep(/\b345\b/@` @data));
print "\n";
224>>220:2001/03/27(火) 14:05
ただPerlを使うだけならActivePerlで十分です
CGIのテストをするならApacheも必要ですね(大爆笑)

Perlのバージョンが同じなら書式(=文法?)も同じです
厳密に言うとちょっと違うのですが、あなたのレベルでは
気にする必要は無いと思います(大爆笑)
225名無しさん:2001/03/27(火) 15:52
>>220
ttp://www.st.rim.or.jp/~nakata/
ttp://www.kent-web.com/www/

ほれ、サービスじゃ、試験用には十分すぎるくらいの環境になる。
でもこの状態で公開するなよ、迷惑だからな
どうしても納得いかないなら自分のマシンにLinuxでも入れとけ
それも教えたろか?
自分の為にならんからやっぱり自分で探せ
キーワードは「Linux」「インストール」「初心者」くらいで
十分さがせるだろ?
226名無しさん:2001/03/27(火) 16:13
[総合]リンクにuse Perl;も入れて。
http://use.perl.org/
227226:2001/03/27(火) 16:14
しまった、[Document]の方にあったのか。
スマソ。
228217:2001/03/27(火) 18:19
>>218
ありがとうござい。
それだけ言いたかった。
229_gunzip@φ(・▽・ :2001/03/27(火) 20:41
>>222
\bは、\Wと\wの境界です・・・・って日本人には余り馴染みがなひから、確かにわかりづらいですね。
試しに、
----
($str = "When it comes to health@` the best thingis not to get angry in the first place.") =~ s/\b/%/g;
print $str;
----
として表示されるものを眺めると、大体の感じが掴めるかと思います。

利用法としては、例えばテキストファイルに含まれる"head"という単語を全て"*head*"のように
強調してやりたい。でも、"headache" や "headstone" @` "headline" 等の単語はそのままに
しておきたいような場合、Etermから

perl -pi.bak -e "s/\bhead\b/*head*/g" infile

とする、などなど。
----
あと、この辺りも参考になりますよ。
http://www.effectiveperl.com/EP.04.pdf のItem18
230名無しさん:2001/03/27(火) 22:27
高校野球のような感じのことで参加するチーム数から、
優勝が決まるまでに必要な試合数を求めるような
perlサブルーチンはどうすれば書けますか。
231_gunzip@φ(・▽・ :2001/03/27(火) 22:33
>>230
引き分けは無いものとすると、
(必要な試合数) = (チーム数) - 1
です。
232名無しさん:2001/03/27(火) 22:34
224はドリフの熱烈なファンか何かか?
233名無しさん:2001/03/27(火) 22:37
「優勝チームが決まる」ってのはつまり「そこ以外のチームが全部負ける」って意味で、
負けるチームは一試合に一つだもんね。
もちろん、「高校野球のような感じのこと」がトーナメントを指してるならの話だけど。
234_gunzip@φ(・▽・ :2001/03/27(火) 22:50
>>230
始めに、全チームにそれぞれ一本ずつ旗を渡して、敗退する毎に
その旗を返却させる、と考えると分かりやすいかもしれない。
返却される旗は一試合につき必ず一本。
そうすると、優勝チームが決まった時点でそのチーム以外の
全ての旗が返却されているわけだから、
(返ってきた旗の数 = それまでの試合数)
      = (全チーム数) - 1 (←優勝したチームの分)
となるわけです。

#こんなの小学校の時によくやった(やらされた)な・・・
235名無しさん:2001/03/27(火) 23:51
open(GIKO@` ">>sine.txt");
print GIKO "逝って良し";

この場合 GIKO の一番上の列に文字を入力する事は出来ナインスカ?
ちなみにsine.txtには既にメッセージが書かれてます。
236名無しさん:2001/03/28(水) 01:30
>>235
できません、
一度ファイルの内容を全部読み込んだ上で先頭に追加して書き出します。
もしくは、別ファイル作って先頭に追加する行を書き込んだ後、
もとのデータを読み込みつつ、そのファイルに全て書き出し、
元のファイル名にrenameします。

というわけで、基本の基本なので、
print 235 "逝って良し";
237名無しさん:2001/03/28(水) 03:24
$number = "20010326";

# $number を 2001/03/26 にしたいのですが、
$number =~ s/(\d\d\d\d)(\d\d)(\d\d)/$1\/$2\/$3/;

# ってやってるんですが、もっと簡単にできませんか?
238名無しさん:2001/03/28(水) 04:36
$number =~ s/(\d{4})(\d{2})(\d{2})/\1\/\2\/\3/;
239名無しさん:2001/03/28(水) 04:44
>>237
$number = join '/'@` unpack "a4a2a2"@` $number;
240名無しさん:2001/03/28(水) 09:15
(大爆笑)
241名無しさん:2001/03/28(水) 09:44
指定したテキストファイルが「文字化けしているか」判定することはできますか?
242大爆笑オモロイ:2001/03/28(水) 09:45
初心者スレなのにやたら威張っている奴が多いな(大爆笑)
243名無しさん:2001/03/28(水) 10:59
>>242
なにか不都合でも?(大爆笑)
244222:2001/03/28(水) 12:41
>>229
なるほど。
これは分かりやすい。『\b』だけじゃなくて
色々試せるので_gunzipさんのスクリプトは
使えます。ありがとうございました。
223の方もありがとうございました。
245名無しさん:2001/03/28(水) 13:27
ライブラリ、モジュール、リファレンス・・・
これらの意味が本を読んでもちんぷんかんぷんです。
誰かわかりやすく教えて下さい。
246名無しさん:2001/03/28(水) 13:42
らくだ本ってなんですか?
247名無しさん:2001/03/28(水) 13:49
トクトクのキャッシュ効かせすぎに対処法はあるのでしょうか。
掲示板を設置したはいいのだが
新しい書きこみがあっても前見たキャッシュが効いて見れない。
更新しても駄目だし。いちいちキャッシュを消すのはめんどい。
CGI置けても意味がないじゃないか。
248T女の竹田:2001/03/28(水) 14:16
>>247
それはトクトクというよりブラウザの方でキャッシングしてるのでは?
自分の場合は掲示板を呼び出すアドレスを"*****.cgi"から
"*****.cgi?"(←?をつける)にすることで解決しました。(理由分かってない…(汗)

ところで、他のサーバにあるファイルが存在するかどうかを簡単に調べる方法って
ありますか?ソケット、FTP可なのでいくらでも方法はあると思うのですが
どうしても自分のスキルではややこしくなってしまいます。
249名無しさん:2001/03/28(水) 14:32
よく「ブックマークに追加」ってありますがあれはどうやってるのですか?
250えび:2001/03/28(水) 14:45
ってゆうかJavaScriptだけど
<A href="javascript:window.external.AddFavorite('ここにURL'@`'ここにページの名前')">お気に入りに追加</A>
ちなみにIE4以上でないと動作いたしません。
だからブラウザ判別が表示する前にいるけどね。
251名無しさん:2001/03/28(水) 14:57
JavaScriptでしたか。。。
ではiモードなどではムリですね
252>>248:2001/03/28(水) 18:19
他のサーバ = アナタがログインできるサーバならば可能
ミラーリングするときの手順を考えてごらんよ(大爆笑)

他のサーバ = アナタがログインできないサーバならば無理
そんなことできたらセキュリティもクソも無いでしょ(大爆笑)

激しくガイシュツだけどLWPモジュールを使えば?
もちろん調べるファイル名がわかる場合のみ有効です(大爆笑)
253T女の竹田:2001/03/28(水) 18:37
>>252
ログインできなければ無理?アップロードするわけでもないのに?

>LWP
ちょっと訳があってモジュールのインストールはできないのですが。
ソケットから書くのかな。はぁー鬱

ちなみに名前はわかっていて、存在確認だけしたいのです。
ファイルそのものはいりません。
254名無しさん:2001/03/28(水) 20:34
ライブラリ、モジュール、リファレンス・・・
これらの意味が本を読んでもちんぷんかんぷんです。
誰かわかりやすく教えて下さい。
255>>253:2001/03/28(水) 21:15
うん。無理だよ(大爆笑)
他人のサーバにあるファイル一覧が取得できたら
有料データベースのデータを全部コピーできちゃうでしょ?

存在確認するだけなら、SocketでもLWPでOKです(大爆笑)

ちなみにLWPはコンパイル不要だから
デフォルトのディレクトリ構造のまま
プロバイダにアップロードすれば
インストール不可でも使えるよ(大爆笑)
256むぎ茶:2001/03/28(水) 22:39


(大爆笑)するほどでもないな(n

257むぎ茶:2001/03/28(水) 22:41


(大爆笑)(n


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
http://www.freeml.com/ml_info.php?ml=bitvalley
258大爆笑オモロイ:2001/03/28(水) 23:27
ファイルの存在確認

use Socket;

sub remote_exists{
&nbsp;&nbsp;&nbsp;&nbsp;my $host = shift;
&nbsp;&nbsp;&nbsp;&nbsp;my $path = shift || '/';
&nbsp;&nbsp;&nbsp;&nbsp;my $port = shift || '80';

&nbsp;&nbsp;&nbsp;&nbsp;my $iaddr = inet_aton( $host ) or die( "inet_aton\n" );
&nbsp;&nbsp;&nbsp;&nbsp;my $paddr = sockaddr_in( $port@` $iaddr ) or die( "sockaddr_in\n" );
&nbsp;&nbsp;&nbsp;&nbsp;my $proto = getprotobyname( 'tcp' ) or die( "getprotobyname\n" );
&nbsp;&nbsp;&nbsp;&nbsp;socket( SOCK@` PF_INET@` SOCK_STREAM@` $proto ) or die( "socket\n" );
&nbsp;&nbsp;&nbsp;&nbsp;connect( SOCK@` $paddr ) or die( "connect\n" );

&nbsp;&nbsp;&nbsp;&nbsp;select SOCK;
&nbsp;&nbsp;&nbsp;&nbsp;$| = 1;
&nbsp;&nbsp;&nbsp;&nbsp;print SOCK <<END;
HEAD $path HTTP/1.1
Host: $host

END

&nbsp;&nbsp;&nbsp;&nbsp;my $response = <SOCK>;

&nbsp;&nbsp;&nbsp;&nbsp;close SOCK or die "close\n";
&nbsp;&nbsp;&nbsp;&nbsp;select STDOUT;

&nbsp;&nbsp;&nbsp;&nbsp;$response =~ / (200|OK)/ ? 1 : undef;
}

そんなにややこしいかなぁ?
実は、URLをhost@`port@`pathに分けるのがいちばん面倒そうだ。
259名無しさん:2001/03/29(木) 01:36
http://www.perl.com/pub/doc/manual/html/pod/perlipc.html#A_Webget_Client
IO::Socket使いなよ、簡単だよ
ところで、目的のファイルはHTTPで見れるのか?
260T女の竹田:2001/03/29(木) 16:50
>>255
>LWPはコンパイル不要
そうなんですか。勉強になります。

>>258
ありがとうございます。それを参考にやってみますね。
ネット関係はあまりやってなくて、WWWサーバさんと
直接お話ししたことがなかったのでちょっと臆していました(笑)

>>259
なるほどφ(.. )メモメモ
急ぎではないので、いろいろやってみようと思います。
あ、もちろんHTTPで見れます。

あと、これは全く別の話になるのですが、
open (FTP@` "| ftp -n $host");
のようにパイプでFTPを呼び出してアクセスする場合、
ファイルリストの取得とかはできるのでしょうか?
(はぁー、また馬鹿にされそうな予感…
261名無しさん:2001/03/29(木) 18:54
>>260
>open (FTP@` "| ftp -n $host");
よく知らんけど、これだとftpにコマンドを与えることはできるけど
その結果を取得できないんじゃない?
262名無しさん(222):2001/03/29(木) 18:55
substr関数について分からないことがあったので質問します。

以下のスクリプト

#!/usr/bin/perl -w
$msg = "He is going to his house.";
substr($msg@` '0'@` '2') = "She";
print "$msg\n";

『He』を『She』に替えることはできるのですが、同時に
『his』を『her』に替えるのにはどうすれば良いでしょうか。
3行目のsubstrの一行で二つの文字を変更することは可能なのでしょうか。

宜しくお願いします。
263261:2001/03/29(木) 19:28
ちょっと調べてみた。
ftpと双方向で通信するのってこれでいいんでしょか?

use IPC::Open2;
open2(\*IN@` \*OUT@` 'ftp ftp://user:pass@domain');
print OUT "nlist\n";
close OUT;
@names = <IN>;
close IN;
264名無しさん:2001/03/29(木) 19:36
他のサイトのファイルを読み込む時ってどうするのですか?
open FH@` "http://tako.2ch.net/perl/index2.html";
@lines = <FH>;
これじゃあできないんですが。
よろしくお願いします。
265名無しさん:2001/03/29(木) 19:40
>>264 とっとと死ね。
266_gunzip@φ(・▽・ :2001/03/29(木) 19:45
>>260
LWPならば、
----------
#!/usr/bin/perl -w

use LWP::UserAgent;
use HTTP::Status;
use HTTP::Request;
use HTTP::Response;

$url = "http://www.2ch.net/index.html"; #チェックしたいURL

$ua = new LWP::UserAgent();
$ua->timeout(10);
$request = HTTP::Request->new("HEAD"@`$url);

if($ua->request($request)->is_success()){
#ok
}else{
#error
}
----------
ですかね。(LWP::RobotUAの方がいいような気がしますが。)
この手のロボットは管理する側から見ると・・・なので、
よく考えてからにしてください。(本当に)
267_gunzip@φ(・▽・ :2001/03/29(木) 19:56
↑変なリンクが張られているな・・・

>>264
どうしてもopen()で済ませたいならば、
open FH@`"lynx -source "http://tako.2ch.net/perl/index2.html |";
open FH@`"wget -O /dev/stdout "http://tako.2ch.net/perl/index2.html |";

または、LWP::Simple のget()利用を考えると良いと思います。

>>260
えと、Net::FTP では駄目なの?
268_gunzip@φ(・▽・ :2001/03/29(木) 19:58
>>262
やっぱり、こう↓するしかないような。(数値に''はつけない方が・・・)
----------
#!/usr/bin/perl -w
$msg = "He is going to his house.";
substr($msg@` 0@` 2) = "She";
substr($msg@` 16@` 3) = "her";
print "$msg\n";
----------
ただ、こちら↓の方が分かりやすいと思いますです。
----------
#!/usr/bin/perl -w
$msg = "He is going to his house.";
$msg =~ s/\bHe\b/She/g;
$msg =~ s/\bhis\b/her/g;
print "$msg\n";
----------
269_gunzip@φ(・▽・ :2001/03/29(木) 20:02
>267に変な"が付いてた・・・

open FH@`"lynx -source http://tako.2ch.net/perl/index2.html |";
open FH@`"wget -O /dev/stdout http://tako.2ch.net/perl/index2.html |";
270_gunzip@φ(・▽・ :2001/03/29(木) 20:14
>>262
こういうやり方もあります。
----------
#!/usr/bin/perl
#置き換えリスト
%w = (
He => "She"@`
his => "her"@`
);
$msg = "He is going to his house.";
$msg =~ s/(\w+)/$w{$1} or $1/eg;
print "$msg\n";
----------
271名無しさん:2001/03/29(木) 23:03
503iから端末のシリアルno.抜けるようになりましたけど、
ユーザーエージェントって、やろうと思えば偽装できるんですよね?
272名無しさん:2001/03/29(木) 23:08
>>271
偽装という表現が適切かどうかはともかく。
できます。
273むぎ茶:2001/03/29(木) 23:16


君には無理

274名無しさん:2001/03/30(金) 07:24
初めて質問するんですが・・今、ソケットを使って他のページを読み込み、
CGIで特定の文字列だけを返すプログラムを作っています。
で、今とほほのプログラムを使って書いているのですが
----
$addr = (gethostbyname("$url1"))[4];
$name = pack("S n a4 x8"@` 2@` 80@` $addr);
socket(S@` 2@` 1@` 0);
connect(S@` $name);
binmode(S);
select(S); $| = 1; select(stdout);
print S "GET $url2 HTTP/1.0\r\n\r\n";
while (<S>) { @data=<S>; }
close(S);

#これ以下は文字列の処理をしています。
----
urlのところには希望のページのアドレスをフォームで受け取るようにしています。
これで大半のページは読み込めるのですが、一部読み込めないページが出てきてしまいます。
正確には実在するページを読み込んでも「ファイルが存在しません」という
ページがでてしまいます。
どなたか原因を御存知の方がいらっしゃいましたら御教授ください。
それについて勉強できるページがあればそれを教えてもらうだけでも嬉しいです
http://x68000.startshop.co.jp/~68user/ こことかは読んだのですが)
よろしくお願いします。
275>>274:2001/03/30(金) 08:28
ソースをコピーしただけで、どんな処理してるのか理解してないでしょ?(大爆笑)
わずか9行なんだから徹底的に調べてごらんよ(大爆笑)
↓この辺読めば解決すると思うよお(ギャハハー)

■CGI-ML Archives(ID:cgi-ml Pass:cgi-ml)
http://210.224.170.228/cgiml/

■Perlでブラウズ(HTTP)
http://ash.or.jp/ash/tips_prog/htm/perl_http.htm
276名無しさん:2001/03/30(金) 10:06
>275
最近意味もなく大爆笑するレス全部キミか?
277名無しさん:2001/03/30(金) 10:47
ファイル操作で、
ファイルの作成日を知るにはどんな演算子使えばいいのですか?
ファイルの作成日(時間)から一分経過していたら
そのファイルを削除するようにしたいのですが。
278名無しさん:2001/03/30(金) 11:37
あげ
279>>277:2001/03/30(金) 12:06
statを使えば解決すると思うよ〜ん(大爆笑)

指定時刻にファイルを削除させるにはプログラムを
常駐させる必要があるのでオイシクないです(大爆笑)

むしろ誰かがアクセスするたびに削除するか判定させる
プログラムのほうがサーバには優しいはずですよ(ギャハハー)
280>>274:2001/03/30(金) 12:30
Host: www.hogehoge.com
がないから。
281名無しさん:2001/03/30(金) 12:45
>むしろ誰かがアクセスするたびに削除するか判定させる

説明不足でした。アクセスした時にファイルの作成日から
一分たっていたら削除するようにしたいのですが。
282_gunzip@φ(・▽・ :2001/03/30(金) 12:50
>>279
>statを使えば解決すると思うよ〜ん(大爆笑)

恐らく、冗談でわざと言っているのだろうが念のため。

perldoc -f stat
>10 ctime inode change time (NOT creation time!) in seconds since the epoch
                     ^^^^^^^^^^^^^^^^^^^^^
How do I find the creation time of a file?

You can't - it isn't stored anywhere. Files have a last-modified
time (shown by "ls -l")@` a last-accessed time (shown by "ls -lu")
and an inode change time (shown by "ls -lc"). The latter is often
referred to as the "creation time" - even in some man pages -
but that's wrong; it's also set by such operations as mv@` ln@`
chmod@` chown and chgrp.
283_gunzip@φ(・▽・ :2001/03/30(金) 12:55
↑ずれてる・・・
それとも、自分の認識が古い(or 誤り)のかな・・・・?
284名無しさん:2001/03/30(金) 13:24
仮出所の時に頂いた母上のうどんおいしゅうございました。 (大爆笑)
姉上の柏餅、おいしゅうございました。 (大爆笑)
もう、裕史 は戻れません。 (大爆笑)
さようなら。 (大爆笑)
285名無しさん:2001/03/30(金) 13:26
成人式とは?(大爆笑)
高松の成人式で市長にクラッカーや物を目の前で投げつけた馬鹿がいました(大爆笑)
あぁこの人たちのお父さんとお母さんは20年もの歳月をかけて大事に大事に(大爆笑)
猿を育てちまったんですね(大爆笑)
いやもったいない幼稚園、小学校、中学校、高校、大学まで行かせてあげて(大爆笑)
小遣いや洋服を買ってあげてと、わざわざ莫大な投資をしてきたわけですよ(大爆笑)
猿なら檻と生野菜で良かったのに(大爆笑)
でもこのたび高松市長の賢明な判断でこの無礼者達は無事捕獲逮捕(大爆笑)
される事となったようでして彼らのこれからの進路はもちろん(大爆笑)
日光猿軍団ですよね(大爆笑)
得意の芸はお客さんにクラッカーを向けてパンッと爆破、そして怒られて(大爆笑)
反省(大爆笑)
きっと軍団一の人気者になれること間違い無しです(大爆笑)
頑張ってくださいね。(大爆笑)
そもそも成人式を迎えたからといってなにかが変わるわけではないのです(大爆笑)
甘ったれが成人式を迎えたら劇的に大人びる なんて事は絶対にあり得ない(大爆笑)
286>>282:2001/03/30(金) 13:26
( $ctime ) = ( stat( $file ) )[10];

ファイルの作成日付を調べるだけならこれで十分じゃないか?(大爆笑)
287名無しさん:2001/03/30(金) 13:26
では成人式とはなにか?(大爆笑)
成人式とは大人になる儀式ではなく(大爆笑)
その日を境に大人と見なされる儀式です(大爆笑)
では誰が新成人を大人と見なすのか?(大爆笑)
お父さんでもお母さんでもありません(大爆笑)
学校の先生でも友達でもありません(大爆笑)
社会が大人とみなすんです(大爆笑)
成人式こそ半人前だった者を社会を構成する一員として扱うものとする(大爆笑)
誇るべき晴れの舞台のはずだが今の俺を含めた若い世代には(大爆笑)
残念ながら大人として扱われるという誇らしさなんてないのが実状で(大爆笑)
だりぃなぁガキのままで遊んでたいよね なんてのが多いの事実です。(大爆笑)
人間なんぞしっかりとした家庭でのしつけと学校での教育をしなければ(大爆笑)
猿となんら変わりません。それは猿そのものです。(大爆笑)
自由と権利だけを声を高くして教えたがそれらを享受する前提である(大爆笑)
義務と責任を教えなかった(大爆笑)
事が権利意識だけが肥大化した無礼者を生み出すことになったんだよ(大爆笑)
すくなくともこれからひとの親になる俺と同じ世代の奴らはてめぇの子供を(大爆笑)
288名無しさん:2001/03/30(金) 13:26
大人になることの誇らしさを知っている人間(大爆笑)
に育てるよう一緒に体当たりで頑張っていこうじゃないですか(大爆笑)
俺彼女いないけど(大爆笑)
俺の場合まず子供生んでくれる相手から探さなきゃいかんわけで(大爆笑)
我こそはと思う埼玉、東京近郊の婦女子は(大爆笑)
一刻も早い写真付きメールをください(大爆笑)
子育て目標は先ほども言ったとおり大人になる事を誇れる人間です(大爆笑)
注 ただし娘の場合は成人まで俺と一緒に風呂に入れますが駄目ですか?(大爆笑)
最後に高松市の彼らが十分に反省し人間として自立されることを切に願います(大爆笑)
追加更新/高松市の市長のお話がありましたので保存して取っておきました ここです(大爆笑)
--------------------------------------------------------------------------------(大爆笑)
このテキストに関する抗議は一切受け付けません(大爆笑)
が(大爆笑)
猿軍団のお猿さんからの抗議なら可(大爆笑)
289>>286:2001/03/30(金) 13:28
馬鹿?(だろうな・・・大爆笑)
290名無しさん:2001/03/30(金) 13:34
>286
お前天然?
291_gunzip@φ(・▽・ :2001/03/30(金) 13:40
>>286
にゃ
292sage:2001/03/30(金) 13:48
おいおい(大爆笑)
自分で試してから発言したほうがいいぞ(大爆笑)
お気に入りの語尾を多用してもらえるのは嬉しいけどね(ギャハハー)
293名無しさん:2001/03/30(金) 13:52
↑誰に言っとるのかわからん。
294名無しさん:2001/03/30(金) 14:06
僕はあの日のことを今でも覚えている。 (大爆笑)
あれば18年前のことだ。。。 (大爆笑)
僕がいつもの様に、1と遊んでいたんだ。 (大爆笑)
でも僕達、普通の遊びに飽きて大人達に「逝っちゃ駄目」、 (大爆笑)
と言われていた裏山に逝ったんだ。 (大爆笑)
その裏山は熊が出るので、禁止されてたんだね (大爆笑)
でも僕らが遊びに逝ったときは熊は出てこなかった。 (大爆笑)
ただ・・・ (大爆笑)
そう、僕達が木に登って遊んでいたら、1君は木の上で (大爆笑)
「僕はウルトラマンだ!空を飛べるんだ!」 (大爆笑)
と言い張っていましたね。 (大爆笑)
そこを僕達は冷やかして (大爆笑)
「飛べるもんならdでみな!」 (大爆笑)
と逝ったんだよね。 (大爆笑)
すると1君は (大爆笑)
「ようし!見てろよ〜、シュワッチ!!!!!」 (大爆笑)
と言うと同時に約20m以上ある木の上からダイブしましたね。。 (大爆笑)
1君は一週間ぐらい生死の境目をさ迷ったそうですね。 (大爆笑)
そして、肋骨を三本、両腕の骨、両足の骨を超複雑骨折して (大爆笑)
両腕と両足を切り取らなければならなかったよね・・ (大爆笑)
病院を退院した時は復帰パーティが行われましたね・・ (大爆笑)
そうそう、あの時君が好きだった春奈ちゃんからのメッセージがあるよ (大爆笑)
「包茎アレルギーなの、ごめんなさい」 (大爆笑)
酷いねえ・・包茎がなんだってんだ・・ (大爆笑)
あ、そろそろ時間です、マタ今度お電話かけますね (大爆笑)
295_gunzip@φ(・▽・ :2001/03/30(金) 14:12
>>284-285@`287-288@`294

perl -lpe "$_ .= qq[(大爆笑)]" infile > outfile

ですか?
296284-285@`287-288@`294 :2001/03/30(金) 14:17
>>295
これからはそれでやりますわ。
297名無しさん:2001/03/30(金) 14:22
10歳の息子の場合 (大爆笑)
「ねえ、おとうさん」(大爆笑)
「ん?」(大爆笑)
「おかあさんには絶対秘密にしといてほしいんだけどさ」(大爆笑)
父、読んでいた新聞から顔を上げ、息子の顔を見る(大爆笑)
「なんだ?どうした?」(大爆笑)
「あのさー」(大爆笑)
「はっきり言えよ」(大爆笑)
息子、少しためらうが思いきって、(大爆笑)
「・・・おとうさんのちんちん、硬くなることある?」(大爆笑)
父、びっくりした顔、その後、うれしそうに大声で笑い出す(大爆笑)
息子、顔を赤くして怒る(大爆笑)
「笑うなよお!もういいよ!」(大爆笑)
「いや、ごめんごめん」(大爆笑)
父、笑うのをやめ、息子の方に体を向ける(大爆笑)
「エッチな写真見たりすると、そうなるんだろ?」(大爆笑)
「うん」(大爆笑)
「だいじょうぶ、みんなそうなる」(大爆笑)
「なんで?なんか、へんな気分なんだけど」(大爆笑)
「大人になると、赤ちゃんの素がちんちんからでるのは知ってるか?」(大爆笑)
「うん、1組の××に、あんたも赤ちゃんの種持ってるの?、って聞かれたことある」(大爆笑)
「そうか。うん。それでな、その種はお嫁さんのお腹の中に入れないと赤ちゃんにならないんだ」(大爆笑)
「えっ?やっぱりそうだったのか。そうだと思ってたんだよなー」(大爆笑)
「その時にちんちんが固くないとうまくお腹に入らない。わかるか?」(大爆笑)
「うん。おへそから入れるんでしょ?」(大爆笑)
(大爆笑)
(大爆笑)
一瞬の間(大爆笑)
父、目に動揺の色(大爆笑)
「うん、まあ、そのあたりだ」(大爆笑)
息子、小犬のようなきらきらした目で父親を見ている(大爆笑)
父、その目を正視できない(大爆笑)
「そ、それで、その準備というか、まあ、その、あれだ、○○も大人の男に近づいたというか」(大爆笑)
息子、大きくうなづく(大爆笑)
「まあ、女の子にはやさしくしなきゃだめだぞ。もう大人なんだからなっ!」(大爆笑)
父、無理やり話をしめくくる(大爆笑)
(大爆笑)
298_gunzip@φ(・▽・ :2001/03/30(金) 14:23
>>296
やめなひゃれ
299名無しさん:2001/03/30(金) 14:24
サザエさんちの場合 (大爆笑)
タラちゃん 「ねえ、ママー」(大爆笑)
サザエ   「なあに?」(大爆笑)
タラちゃん 「赤ちゃんってどこからくるでしゅか?」(大爆笑)
波平、フネ、マスオ、サザエ、視聴者にわからない程度に緊張する(大爆笑)
カツオ、ニヤニヤしている(大爆笑)
ワカメ   「コウノトリさんが運んでくるのよ、タラちゃん」(大爆笑)
タラちゃん 「じゃぼくもコウノトリさんに乗ったでしゅか?また乗りたいでしゅ!」(大爆笑)
サザエ   「あら、タラちゃんはもう大きいから、重たくて無理よー」(大爆笑)
マスオ   「残念だったねえ、タラちゃん」(大爆笑)
タラちゃん 「残念でしゅー」(大爆笑)
一同、笑 (大爆笑)
300名無しさん:2001/03/30(金) 14:25
ちびまる子ちゃんちの場合 (大爆笑)
まる子 「ねえ、おかあさん」(大爆笑)
母   「なんだい?まる子」(大爆笑)
まる子 「エッチなことすると赤ちゃんできるって、ほんと?」(大爆笑)
(大爆笑)
(大爆笑)
バック暗転(大爆笑)
母、姉、祖母、顔にタテ線(大爆笑)
姉   「あ、あんたねえ。食事中に変なこと言わないでよ」(大爆笑)
まる子 「変なことじゃないよ、わかんないから聞いてんのにー!!」(大爆笑)
父ひろし、ニヤニヤ(大爆笑)
祖父友蔵「いつまでも 子供じゃないぞ さみしいな 友蔵、心の俳句」(大爆笑)
キートン山田「後半へ続く」(大爆笑)
301名無しさん:2001/03/30(金) 14:25
のび太の場合 (大爆笑)
「ねえ、ドラえもーん」(大爆笑)
「なんだい?のび太くん」(大爆笑)
「赤ちゃんって、どこから来るのか知ってるう?」(大爆笑)
ドラえもん、疑いの目で(大爆笑)
「ほんとに知らないのー?」(大爆笑)
のび太、例のバカ丸出しの顔で(大爆笑)
「うん!」(大爆笑)
ドラえもん、ため息をつき、ポケットに手を入れる(大爆笑)
「ついにこれを使う日が来たか・・・」(大爆笑)
ドラえもん、男女の人形の様なものを取り出す(大爆笑)
「性教育ロボット!!」(大爆笑)
のび太、期待に満ち満ちた目(大爆笑)
「22世紀の子供たちは7歳になるとこれで本当のことを学ぶんだ。覚悟はいいかい、のび太君」(大爆笑)
「うん!!!!」 (大爆笑)
(大爆笑)
1時間後(大爆笑)
のび太、目が渦巻き。(大爆笑)
302>>292:2001/03/30(金) 14:35
病院逝け。
コピペ野郎もついでに。
303名無しさん:2001/03/30(金) 14:41
Perl5.6を導入してあるサーバーってあるでしょうか?
304名無しさん:2001/03/30(金) 15:04
地球連邦軍、並びにジオン公国の戦士に告ぐ。我々はデラーズ・フリート。 (大爆笑)
いわゆる、1年戦争と呼ばれた、ジオン独立戦争の終戦協定が偽りの物であることは誰の目にも明らかである。なぜならば、協定はジオン共和国の名を語る売国奴によって結ばれたからだ。我々はいささかも戦いの目的を見失ってはいない。それは間もなく実証されるであろう。 (大爆笑)
私は日々思い続けた。スペースノイドの自治権確立を信じ、戦いの業火に焼かれていった者たちのことを。そして今また、あえてその火中に飛び入らんとする若者のことを。 (大爆笑)
スペースノイドの心からの希求である自治権要求に対し、連邦はその強大な軍事力を行使して、ささやかなるその芽をつみとろうとしている意図を証明するに足る事実を私は存じておる。 (大爆笑)
見よ!これが我々の戦果だ。このガンダムは核攻撃を目的として開発されたものである。南極条約違反のこの機体が、密かに開発された事実をもってしても、呪わしき連邦の悪意を否定できる者がおろうか。省みよ。なぜジオン独立戦争が勃発したのかを。なぜ我らがジオン・ズム・ダイクンと共にあるのかを。 (大爆笑)
我々は3年間待った。もはや我が軍団にためらいの吐息を漏らす者はおらん。今、真の若人の熱き血潮を我が血として、ここに私は改めて地球連邦政府に対し宣戦を布告するものである。仮初めの平和へのささやきに惑わされることなく、繰り返し心に聞こえてくる祖国の名誉のために、ジーク・ジオン。(大爆笑)
305名無しさんにゅ:2001/03/30(金) 15:19
よくあるMETAタグで飛ばしてリファー残さないように
アクセスするjumpurl.cgi見たいな感じの
CGIありませんでしょうか?
306名無しさん:2001/03/30(金) 15:27
>286
282をよく読みましたか?
307名無しさん:2001/03/30(金) 15:29
NetWare サーバーまたは Windows NT サーバーにファイルをバックアップする(大爆笑)
バックアップ エージェントというネットワーク サービスを使うと、ローカルのハード ディスクのファイルをネットワーク サーバーに自動的にバックアップできます。そのためには、ネットワーク管理者がサーバーにセットアップしたバックアップ エージェント (ARCserve またはバックアップ実行エージェント) を使う必要があります。(大爆笑)
バックアップのスケジュールは、ネットワーク管理者が指定します。バックアップするファイルは、ユーザーが指定します。(大爆笑)
バックアップ エージェント サービスの設定方法や、バックアップするフォルダの指定方法などの詳細については、下の "関連項目" をクリックしてください。(大爆笑)
308名無しさん:2001/03/30(金) 15:31
sub read_log(大爆笑)
{(大爆笑)
local $_;(大爆笑)
my $room = shift;(大爆笑)
my $fh = new FileHandle;(大爆笑)
my @data;(大爆笑)
(大爆笑)
$fh->open("< $CONFIG{log_dir}/$room.log") or error("Room $room does not exist.");(大爆笑)
while(<$fh>) {(大爆笑)
chomp;(大爆笑)
my($name@` $time@` $remark) = split /\t/@` $_@` 3;(大爆笑)
push @data@` {name => $name@` time => $time@` remark => $remark};(大爆笑)
}(大爆笑)
(大爆笑)
@data;(大爆笑)
}(大爆笑)
309名無しさん:2001/03/30(金) 15:33
あれからの私は会社勤務、雑誌連載、夫として乳、いや父として、忙しい毎日を送っていた。(大爆笑)
やはりなんというか、数々のメールを通して総合的に言えることは、どうも二十歳くらいの女の子は三十路の男にダンディズムを強く感じ、「逆ナンパ」も当たり前らしいのである。(大爆笑)
時代は変わった…。私が学生の頃なぞ、不良っぽい女の子はスカートの丈が長ければ長い程ワルであり、ヘタすれば女の子の足首すら拝めないという有り様であったのが、今では総一億「ワカメちゃん状態」である(大爆笑)
。パンツ見えても「布で隠れてるからいいジャン」なのである(鼻血)(大爆笑)
。三十路とのアバンチュールも「減るもんじゃなし」的発想なのである(滝鼻血)(大爆笑)
。そのかわり別離も超ドライらしい(三十路男性からの半泣きメールが来ていたので立証済)。 (大爆笑)
310名無しさん:2001/03/30(金) 15:40
       _____
      /:::::::::::::::::::::::ヽ
     /::::::::::@`;;;;;;;;/ヾ;;;;;;;ゝ
    /::::::::〃 _  _|
    |::::::::/  □―□|
     (6:::|    人  ヽ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     / \> @`__)  ) <  3Pの予感・・・・・
   /\ ヽ  └┘ /   \___________
  /|/\\  ̄ ̄ ̄/\


311名無しさん:2001/03/30(金) 15:41
ちびまる子ちゃんちの場合 (大爆笑)
まる子 「ねえ、おかあさん」(大爆笑)
母   「なんだい?まる子」(大爆笑)
まる子 「エッチなことすると赤ちゃんできるって、ほんと?」(大爆笑)
(大爆笑)
(大爆笑)
バック暗転(大爆笑)
母、姉、祖母、顔にタテ線(大爆笑)
姉   「あ、あんたねえ。食事中に変なこと言わないでよ」(大爆笑)
まる子 「変なことじゃないよ、わかんないから聞いてんのにー!!」(大爆笑)
父ひろし、ニヤニヤ(大爆笑)
祖父友蔵「いつまでも 子供じゃないぞ さみしいな 友蔵、心の俳句」(大爆笑)
キートン山田「後半へ続く」(大爆笑)
3120:2001/03/30(金) 15:41
ちびまる子ちゃんちの場合 (大爆笑)
まる子 「ねえ、おかあさん」(大爆笑)
母   「なんだい?まる子」(大爆笑)
まる子 「エッチなことすると赤ちゃんできるって、ほんと?」(大爆笑)
(大爆笑)
(大爆笑)
バック暗転(大爆笑)
母、姉、祖母、顔にタテ線(大爆笑)
姉   「あ、あんたねえ。食事中に変なこと言わないでよ」(大爆笑)
まる子 「変なことじゃないよ、わかんないから聞いてんのにー!!」(大爆笑)
父ひろし、ニヤニヤ(大爆笑)
祖父友蔵「いつまでも 子供じゃないぞ さみしいな 友蔵、心の俳句」(大爆笑)
キートン山田「後半へ続く」(大爆笑)
313286:2001/03/30(金) 15:42
ちびまる子ちゃんちの場合 (大爆笑)
まる子 「ねえ、おかあさん」(大爆笑)
母   「なんだい?まる子」(大爆笑)
まる子 「エッチなことすると赤ちゃんできるって、ほんと?」(大爆笑)
(大爆笑)
(大爆笑)
バック暗転(大爆笑)
母、姉、祖母、顔にタテ線(大爆笑)
姉   「あ、あんたねえ。食事中に変なこと言わないでよ」(大爆笑)
まる子 「変なことじゃないよ、わかんないから聞いてんのにー!!」(大爆笑)
父ひろし、ニヤニヤ(大爆笑)
祖父友蔵「いつまでも 子供じゃないぞ さみしいな 友蔵、心の俳句」(大爆笑)
キートン山田「後半へ続く」(大爆笑)
314名無しさん:2001/03/30(金) 15:54
イントラネットでサーバーの中でperl暴走してしまったら
どうすればいいんですか?
315>>314:2001/03/30(金) 16:03
プロセスを削除しましょ(大爆笑)
UNIXサーバならkill使おうね(大爆笑)
ちゃんとOSくらいは書こうよ(ギャハハー)
316名無しさん:2001/03/30(金) 16:07
春だな・・・
317315:2001/03/30(金) 16:08
埼玉県在住のK美さん(大爆笑)
私もそんな上手い話は無いと思ってたんですけどそんなにお金がかからないのでトライしてみたんですよ、そうしたら見事(大爆笑)
投資額二千円程度のチョコレートが3/14には二万八千円の指輪になって返ってきました。(大爆笑)
本当なんです、10倍以上になって返って来たんですよ、今でも信じられません(大爆笑)
たぶんマニュアル通りにやったのが良かったんだと思います(大爆笑)
えぇ一ヶ月間のアフターケアも忘れませんでしたよ(大爆笑)
でもこういうのに引っかかる男っているんですね、正直ビックリしました(大爆笑)
一年に一回だけどこんな安全確実な投資先は絶対にありません (大爆笑)
さぁあなたもレッツトライ!!(大爆笑)
318名無しさん:2001/03/30(金) 16:09
OSはNTです。
プロセスってなんですか?
クライアントから暴走を止める事はできますか?
どうか教えて下さい。m(_)m
319名無しさん:2001/03/30(金) 16:10
今回、当クラブにてレス番号「315」のあなた様に対して
女性会員から逆指名がありました、これがその女性達です

あいか17   女子高生    友達や彼氏募集
ゆうな20   フリーター    甘えん坊ですぅ
りょう23   エステシャン  白い肌が自慢よ
あきこ24  予備校事務   出会いがほしい
きよみ33  Hなホステス  激しい人を希望
さきえ19   明るい学生   私じゃ駄目ですか
くみこ24   フリーター    舐め舐め好きよ
まりこ21   洋菓子屋勤務  酔うとHに変身
あやか24   デパート勤務  制服でしましょ
えいこ35   巨乳の主婦   胸が性感帯です
あきな20   パチンコ店員  おチンコ大好き
ようこ22   洋服店バイト  暖めてください
あいこ26   保険会社OL  もっこり欲しい
たえこ24   イベント関係  月1回会いたい
ともみ23   日焼けサロン  乳首も黒いです
しずか19   大学生      締まり自信有り
みちこ23   金融系OL    優しい人が好き
きみこ37   居酒屋ママ   バイブで責めて
320318:2001/03/30(金) 16:18
お願いします。教えて下さい。
321318:2001/03/30(金) 16:25
どうかお願いします。
322318:2001/03/30(金) 16:30
ほんとに頼れるのは2ちゃんだけになってしまいました。
お願いします。
323名無しさん:2001/03/30(金) 16:37
ps
kill pid
324名無しさん:2001/03/30(金) 16:43
再起動
325名無しさん:2001/03/30(金) 16:48
大爆笑のコピペしてる奴と低脳大爆笑男今すぐ回線切って首をつれ ボケ
326名無しさん:2001/03/30(金) 16:50
>318
NTだったらタスクマネージャー(Ctrl+Alt+Delete)でタスクの終了で
perlのプロセスを消してageてやればいいんでないのかい?
327318:2001/03/30(金) 17:00
うわぁぁぁっ
328名無しさん:2001/03/30(金) 18:17
Windows上で<STDIN>を実行するにはどうするのですか?
ブラウザで起動しても<STDIN>ができません。
329328:2001/03/30(金) 18:34
ちなみにWinは2000です。
ActivePerlの使い方はよく分かりません。
330318:2001/03/30(金) 18:35
ほんとに頼れるのは2ちゃんだけになってしまいました。
お願いします。
331318:2001/03/30(金) 18:36
どうかお願いします。
332318:2001/03/30(金) 18:37
お願いします。教えて下さい。
333名無しさん:2001/03/30(金) 19:35
本当の318ですが。
なりすましはやめといて下さい。
>>330>>332
やっぱり心ない人っているんですね。
君がそうやってつまらない事やってる間に
一所懸命に働いてる人がいるんだよ。
もう書き込みはしないです。
334名無しさん:2001/03/30(金) 19:36
318です。
最後に、アドバイス下さった方ありがとうございました。
335名無しさん:2001/03/30(金) 21:04
メールアドレスのホストのチェックってどうするのがいいんだろう。
前提としてこの際、メールの名前はどうでもいい。
gethostbynameだとダメだし・・・
336名無しさん:2001/03/30(金) 22:38
>>334
プロセスの停止法も分からない人間が大きな口を叩きなさんな。
337むぎ茶:2001/03/30(金) 22:49
>>333

爆。
高卒ですか?
高卒は不可。
勝手に一人で働いてな。わ

┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
http://www.freeml.com/ml_info.php?ml=bitvalley
338名無しさん:2001/03/30(金) 22:51
>>336
あははー初心者スレなんだからいいじゃん
技術的な質問には反応しないくせに
そんなことだけ元気になるのね。かわいい♪
339262=222:2001/03/30(金) 23:29
>>268
>>270
なるほど・・・。
それにしてもいつも素早いレスで感謝しています。
私は270の方が好きかな。

substr関数ってあまり使われないのですか?
340名無しさん:2001/03/30(金) 23:31
336ではないが、「技術的」以前の問題じゃないのか?
341名無しさん:2001/03/31(土) 01:44
>>339
>substr関数ってあまり使われないのですか?
んなこたぁない
342名無しさん:2001/03/31(土) 06:52
どうも、以前ソケットで大笑いされた者です(死

で、NOTFOUNDのページとそうでないページを判別する事は
出来ますか?

色々やっても駄目だったので・・・。
343名無しさん:2001/03/31(土) 08:18
httpしゃべって、404って言われたら、Not Found.
いかにもなURLにリダイレクトされても、Not Found.
344名無しさん:2001/03/31(土) 13:01
ってゆうか、HEADして戻ってきたステータスコード見ればいいじゃん
345名無しさん:2001/03/31(土) 16:25
>>344
激しく同感!
346名無しさん:2001/03/31(土) 18:33
$aが$bで割り切れるかどうか調べるには?
347名無しさん:2001/03/31(土) 19:08
>>346
#!/usr/bin/perl
unless ($a = sprintf("%d"@`int(rand(10)))) { $a = 1 }
unless ($b = sprintf("%d"@`int(rand(10)))) { $b = 1 }
if ($a % $b) {
print "$aは$bで割り切れねぇぞゴルァ\n";
} else {
print "$aは$bで割り切れると思われ\n";
}
348名無しさん:2001/03/31(土) 19:10
関係ないけどsprintfはいらんっすね
349名無しさん:2001/03/31(土) 21:17
行き詰まってここに来ました。
ややこしいのですが、以下のような内容です。

1)ID/PASS発行CGI
2)その他住所等の個人データ取得mailform(CGI)
…という二つの目的のためのscriptがあるとします。
これらをあたかも一つのformであるかのようにしたいのです。

---------1)----2)
ID-------○
Pass-----○
e-mail----○======○--------共通項目
Name------------○
Add--------------○
Tel--------------○
===================================
今使っている認証用PASS発行scriptでは名前や住所などの
データを取得できません。
そこで(見た目は)一つのformで、
pass発行と管理人にはその他データを送信するという
ことをしたいのです。
別のページを作りそれぞれ入力させても良いのですが、
やはり一度の操作でそれぞれ必要なデータを取ることが
出きればと思うのです。
上の例ですと認証scriptにはID・PASS・e-mailを送り、
formではe-mail・name・add・telを管理人に送ります。
<redirect>を使えば出きるかとも考えますが、
具体的にどう書けばいいのか分からなく困っています。

もしくはID/PASSと名前などのデータも同時に登録・管理、
そして出きれば登録者自身が変更できるようなscriptをご
存じ無いでしょうか?
※意味不明ならば補足します。
350>>349:2001/03/31(土) 22:49
見当違いの説明をダラダラするのもアレなので今回はヒヤカシだけね(大爆笑)
特に不都合がないなら登録者と管理者に同じメールを送った方が便利じゃないか?(大爆笑)
↓こんなカンジでいいのか?(ギャハハー)

誰か(会員でない人)がアクセスする

ID登録をするためにメールアドレスと個人情報を入力する

登録者にはID、パスワードを添付したメールを送信する

管理者には登録者のメールアドレスと個人情報をメール送信する
351名無しさん:2001/03/31(土) 22:52
↑春厨出てくるな。死ね
352名無しさん:2001/03/31(土) 23:20
↑お前みたいな口先だけの奴よりよっぽど有益だろ。お前が死ね
353名無しさん:2001/04/01(日) 00:45
>>347
$hoge = 66;
&ht;
sub ht{
$hogehoge = int(rand(99));
print "$hogehoge\n";
$hoge++;
if($hogehoge % $hoge){ print "okey\n"; }
else{ print "sine\n"; }
&ht;
}

これだとokeyしか出ないんですがどこが間違ってますかね?
354名無しさん:2001/04/01(日) 01:02
間違った...いやあってるが....#! /usr/bin/perl
$hoge = 66;
&ht;
sub ht{
$hogehoge = int(rand(99));
print "$hogehoge\n";
$hogehoge*$hoge;
$hogehoge++;
if($hogehoge % $hoge){ print "okey\n"; }
else{ print "sine\n"; }
&ht;
}
これでもOkeyしか出ないですね
355名無しさん:2001/04/01(日) 01:35
>>349
言うとおりredirectに関する説明を探してみな。
サンプル付でごろごろあるよ。
>>350
それでは登録を管理人がしないと逝けない。
質問はそれを省きたいからだろ。
大爆笑とのたまってるお前に微笑くらいしか出ないよ。
さも出きるような口振りだが嘘をつくな。
黙って糞でもしてろ。
356名無しさん:2001/04/01(日) 01:53
>>354
srand;
357名無しさん:2001/04/01(日) 02:32
http://www.compile.co.jp/webds/game/mayumi/
↑のようなゲームを作りたいんですが、ブラウザの戻るボタンを
禁止するという処理で躓いてます。アドバイス戴けませんでしょうか?
長くなってすみません。↓のようにやってみました。

<1>
1.cgi
最初にCookieの受け取りを行う。Cookieを受信している場合は、
SENDボタンを押した時にerror.cgiに移動させる。
cookieを受信していない場合は何もしない。
---
選択肢を選ぶ。『AとB』という選択肢があり、
フォームのラジオボタンで選択させる。

<2>
2.cgi
1.cgiのフォームから選択した内容を判定する。
『A』を選択した場合は---&gt;a.cgiへ。
『B』を選択した場合は---&gt;b.cgiへ。

この時に選択肢を一度選んでいるという証拠としてCookieを送信しました。
(後で1.cgiに判定させる為)
METAタグを使用して、0秒で『a.cgi/b.cgi』に移動させる。

<3>
a.cgi/b.cgi
Cookieの受信を行う。
以上。

・・・という処理を行ったのですが、実際にhttpdで確認してみると『a.cgi/b.cgi』に行った後に
ブラウザの「戻るボタン」で1.cgiに戻ると2.cgiで送信したCookieが受信されません。
(a.cgi/b.cgiでは受信されているのですが・・・)
1.cgiに戻った時に「更新」を行うと正常にCookieが受信されて
SENDボタンを押した時にerror.cgiに行きます。

戻った時にCookieを正常に受け取るにはどうすれば良いのでしょうか?
もしくは1.cgiに行った時に「一度のみ自動的に更新を行う」という作業を
CGIで出来ますでしょうか?
358名無しさん:2001/04/01(日) 04:11
>>357
「戻るボタンの禁止」…
JavaScriptでツールバー消したウインドウ作るか、
サーバーでファイル作ってID管理しちゃうか。。。
でもそれじゃあ駄目だよね、ぐすん。

359名無しさん:2001/04/01(日) 04:23
なあ、ヤフーオークションの画像の自動縮小ってどうやってやんの?
教えちくり。
画像サイズの総合サイズの規制方法は知っているんだけど、widrh height
がある一定のサイズ以上になったら、縮められるようにしたいんだけど。
知ってる方、お願いします。
360名無しさん:2001/04/01(日) 04:32
>>353
Perlのバージョンが古い場合は>>356の言うようにsrandしなきゃならん。
んで、これだと再帰させてる場所がまずい。
ちゃんと出るのに見逃してる可能性もある。
$hoge = 66;
&ht;
sub ht{
&nbsp;&nbsp;srand;
&nbsp;&nbsp;$hogehoge = int(rand(99));
&nbsp;&nbsp;print "$hogehoge\n";
&nbsp;&nbsp;$hoge++;
&nbsp;&nbsp;if($hogehoge % $hoge) {
&nbsp;&nbsp;&nbsp;&nbsp;print "割り切れねぇからやり直し\n";
&nbsp;&nbsp;&nbsp;&nbsp;&ht;
&nbsp;&nbsp;} else {
&nbsp;&nbsp;&nbsp;&nbsp;print "逝って良し\n";
&nbsp;&nbsp;}
}

>>354
これは$hoge=66だとして乱数$hogehogeに66掛けて1足したら
どうやっても66で割り切れない。ついでに66で割るんだから66掛けるのは無駄。
だから永遠にelse(つーか0)の方には逝かない。

トラブったらその部分を簡素にしてみるのが吉。
361名無しさん:2001/04/01(日) 04:55
359
縦、横の配率を一定のままに縮小できないものでしょうか?
例えば、width=600 以上になった場合 500以下に縦横の配率を一定のまま縮小するとかです。
362名無しさん:2001/04/01(日) 05:08
(大爆笑)は程度が低いな(ワラ
363大爆笑オモロイ:2001/04/01(日) 09:27
>>355
1)登録ボタンを押す
2)IDとPASS発行サブルーチン
3)メール送信サブルーチン
こんな流れのプログラムもあるよ
それでも駄目なのか?
364名無しの35歳:2001/04/01(日) 09:29
355は柔軟な思考回路が無いねえ
スクリプトキッズ???
え?死語なの?(大爆笑)
365深田恭子:2001/04/01(日) 09:30
>>362
誰と比べて?(大爆笑)
366名無しさん:2001/04/01(日) 09:59
>>357
こういうのを併用したらどうでしょう。

<1> 1.cgi
1を通った証拠としてCookieを食わせる。
2へ飛ぶ。

<2> 2.cgi
Cookieがあれば正常、なければ不正。
判定後にCookieを削除。
正常なら a.cgiまたはb.cgiへ進む。
不正ならerror.cgiへ。

<3> a.cgi/b.cgi
Cookieは関係なし

これだと、[戻るボタン]で1に戻り、1をリロードしないと、
2へ進んだときエラーになります。357のロジックと
組み合わせると完璧・・・たぶん・・・あまり自信なし。
367>>all:2001/04/01(日) 13:25
初心者達にせっかく教えてやっているのだからもっと素直になろうな(大爆笑)
特にそこの355君は特ね(大爆笑)
あ、もう遅いか(ギャハハー)

>>282
細かいこと言うなよ(大爆笑)
ctimeってcreation timeだろ(大爆笑)
細かいことなんてどうでもいいじゃん(ギャハハー)
368名無しさん:2001/04/01(日) 14:37
春だなぁ…。
369名無しさん:2001/04/01(日) 14:53
自分じゃおもろいとでも思ってるのかね。
病院行ったら?
370名無しさん:2001/04/01(日) 16:15
>>369
どこの病院がいいですか?
371名無しさん:2001/04/01(日) 16:21
少なからずPerlに触れている367を評価します
368、369、370、371はこのスレッドにふさわしくありません
372名無しさん:2001/04/01(日) 16:56
print('age!!');
unshift(@threads@` splice(@threads@` $num_of_this@` 1));
373名無しさん:2001/04/01(日) 17:24
print('sage!');
unshitf(@threads@` spilce(@thraeds@` $num_of_thls@` l));
374名無しさん:2001/04/01(日) 17:36
>>276
ちがいます(大爆笑)
ここの住人の一部には刺激が強すぎたみたいです(大爆笑)
これは単なる感嘆符か句読点だと思ってください(ギャハハー)
375名無しさん:2001/04/01(日) 17:45
>>374
die '春休みの課題終わった?';
376sage:2001/04/01(日) 17:50
kill 375
377名無しさん:2001/04/01(日) 19:17
367は単なる馬鹿なのかそれとも呆けてるのかどっちだ
378名無しさん:2001/04/01(日) 19:20
>>371
367読の後半よんで、マジで言ってるか?
なら救いようがないな。
379名無しさん:2001/04/01(日) 20:08
>371
「少なからず」を辞書で引いてごらん。低脳君
380名無しさん:2001/04/01(日) 22:42
>>371
”能力のない私には” が抜けてますよ?
381名無しさん:2001/04/01(日) 23:13
あはは・・・
そんなに思想統一がしたいのですか?
オモロイ人間を陶太したいでくだちゃい(大爆笑)
382名無しさん:2001/04/01(日) 23:36
此処はPerl初心者コーナー
関係のない話は止め。

>381
思想なんて大層な話かよ。
陶太→淘汰だろ。白痴君。君は小学生ですか?
383381:2001/04/02(月) 00:26
小学生だよ(大爆笑)毎日毎日大爆笑
人は俺の事、白痴っていうけどな
俺もそう思う(大爆笑) もう来ねーよ
384名無しさん:2001/04/02(月) 00:56
掲示板のアクセスログの設置の仕方を教えていただきたいのですが
まずアクセスログの種類は&lt;!--#exec cmd="./****.pl"--&gt;という
のをHTML文に追加すれば、あとは****.txtにログが残る簡易アクセスログ
なのですが、掲示板のPerl文の中の場合どこにこの&lt;!--#exec cmd="./****.pl"--&gt;
を追加すればいいのかわからないんです。自分で色々考えた結果、掲示板の
Perl文にアクセスログのPerl文をくっつけてやってみたりしましたが
駄目でした。誰か上手いやり方を教えていただけないでしょうか?
よろしくお願いします。
385名無しさん:2001/04/02(月) 01:15
>>384
アクセスログのプログラムは、その掲示板CGIと同じディレクトリに
置いて、呼び出す部分は、そのCGIが吐くHTMLの中に埋め込めばいい

と、書かれた情報から推測するが
386名無しさん:2001/04/02(月) 01:26
CGIで特定のサーバからしかプログラムを呼び出せないように
しているところがあります。多分環境変数で色々やっていると思うのですが
サーバの情報を書き換えて送ってやる事は可能ですか?

初心者的質問ですが・・・。
387名無しさん:2001/04/02(月) 01:34
>>384
レスありがとうございます。おっしゃる通りにしてるんですが
上手くいかないんです。CGIが吐くHTML中ということなんですが
print "</p>\n";
print "</body></html>\n";
とありまして、
print "</p>\n";
print "</body></html>&lt;!--#exec cmd="./****.pl"--&gt;\n";

print "</p>\n";
print "&lt;!--#exec cmd="./****.pl"--&gt;\n";
print "</body></html>\n";
など試したのですが、掲示板自体が500のエラーで駄目なんです。
どうしたらいいのでしょうか?
388384=387:2001/04/02(月) 01:35
すいません。。上のレスは>>385さんへです。。
389名無しさん:2001/04/02(月) 01:39
Cron
って何ですか?
色々見ても良く分からなかったり・・・・。

実力の無い俺、鬱。
390名無しさん:2001/04/02(月) 01:39
"→\"
391名無しさん:2001/04/02(月) 01:45
>>389 cron 定期的にコマンドを実行できる便利なやつ
392名無しさん:2001/04/02(月) 01:48
393名無しさん:2001/04/02(月) 01:52
>>391
乱雑な質問に答えてくださって有難うございます。
なるほど、定期的にコマンドを実行できるのですか・・。
一応Perlでプログラムできるのですよね・・・?
確か環境が適応していないと動かないとか聞いたような・・。
どうなんでしょう?
394名無しさん:2001/04/02(月) 01:59
>>387
多分違うと思うが、そういう経験があるので取り敢えず。

そのディレクトリのパーミッションが777なら、755に直して、
ログなどを別ディレクトリに移す。
で、そのログのディレクトリを777に。
TKCITYとかのサーバだと.cgiファイルのディレクトリが777だと動かない
場合がある。

395名無しさん:2001/04/02(月) 02:55
>>387
"をエスケープすべし。
print "&lt;!--#exec cmd=\"./****.pl\"--&gt;\n";

396名無しさん:2001/04/02(月) 04:16
>>387
CGI中でわざわざSSIしないでCGIプログラムの中にアクセスログをそのまま使うか
アクセスログをサブルーチン化してrequireでもしたら・・・ダメなん?
397名無しさん:2001/04/02(月) 05:59
system ("wget http://www.hoge.com/hoge.txt");
とするとcgiが置いてあるディレクトリにhoge.txtが落ちてくるんですか?
398名無しさん:2001/04/02(月) 07:36
my って宣言がありますが、以前フリーのCGIを落としてローカルで
動かしたら動かず、myを全て取り除いたら動いた事があります。
なんででしょうか?原因が未だに分かりません。
399fusianasan:2001/04/02(月) 07:58
Effective Perlあたりでも読んでみれ。
とりあえず、そのCGIはちゃんとデバッグしてなかったんじゃないの?
もしくは>>398の使ってたPerlが古いとか。
個人的にはmy推奨。
じゃないと他人のスクリプトはいじりにくいし分かりにくいエラーの原因にもなる。
400おちんちんせっくす:2001/04/02(月) 09:02
>>386
アクセス制限機能のある掲示板スクリプトでも見てごらん(大爆笑)
どんな環境変数で判定しているかわかるよ(ギャハハー)

>>397
実際に実行してごらんよ(大爆笑)

>>398
perl -v
を入力してヴァージョンを調べてみた?(大爆笑)
perl -wc ****.pl
を入力して文法チェックしてみた?(大爆笑)
my無しでも正常に動作するならmy不要です(ギャハハー)
401名無しさん:2001/04/02(月) 10:44
↑なんだかしらんがムカツク文章になってるな(大爆笑)
402名無し:2001/04/02(月) 10:59
最後に(大爆笑)どころか(藁とか(プとか付けてると
引きつり笑いしているところしか思い浮かばんのは俺だけか?sage
403名無しさん:2001/04/02(月) 11:23
大爆笑さん
貴方のことが好きになりました。
愛しています。
恐らくあなたの一生でこの台詞を言ってくれるのは
後にも先にも私だけでしょうね。
あぁ可哀想で惨めな大爆笑さん・・・
本当の大爆笑をしたことがないあなたが不憫でたまりません。
いいじゃないですか。
ヒッキーだって、厨房だって、童貞包茎だって、弱虫だって、
喧嘩弱くたって、口が臭くたって、阿呆だって、
一生懸命になって書き込んだ文章から聞こえますよ。
誰かに救って欲しい、友達になって、自分を認めて、
何で俺だけがって・・・
あぁ・・・なんてかなしいウジ虫のような大爆笑さん・・・
氏ね(ここで本当の大爆笑)
404名無しさん:2001/04/02(月) 11:57
>>384=387
CGI出力の中に含めたSSIコマンドは、
現在のApacheじゃ実行できない仕様になってるみたいだよ。

↓ApacheのFAQ参照。
http://japache.apache.or.jp/japanese_1_3/manual/misc/FAQ.html#ssi-part-iii
http://httpd.apache.org/docs/misc/FAQ.html#ssi-part-iii

だから396が書いてるような方法をとるか、SSI方式のアクセスログを
あきらめて画像貼り付け式のアクセスログに変えないと。
405名無しさん:2001/04/02(月) 12:03
>>393
cronは、CGIスクリプトの中から呼び出すものじゃなくて、
普通はshellにログインして時刻や動作を設定するのだ。
cron設定用のcrontabというコマンドが一般ユーザにも
使えるように開放されていればね。
406名無し:2001/04/02(月) 12:56
ん?
407406:2001/04/02(月) 12:57
>>406は誤爆なんで気にしないでくれ
408_gunzip@φ(・▽・ :2001/04/02(月) 14:28
>>339
substrは、文字列のある特定の部分だけを置換の対象に
する場合とかに重宝するよ。

#!/usr/local/ActivePerl-5.6/bin/perl -w

$d = "GATGTAGCTAGCATTTGTATGTA";
print $d @` "\n";
substr($d@`5@`10) =~ tr[GCAT][CGTA]; #5-15文字目を置換の対象に
print $d @` "\n";
409397:2001/04/02(月) 16:06
できませんでした。
他サーバーのtxtファイルを自サーバーに持ってくる方法教えてください
410名無しさん:2001/04/02(月) 17:40
>>409
use Socket;
411名無しさん:2001/04/02(月) 20:09
ローカルで CGI が動きません。
OS は WIN98 で Perl for Win32、AnHTTPd を使っています。
Autoexec.bat のパスの確認はしました。

print "Content-type: text/html\n\n";
print "<HTML><BODY>\n";
print "<H2>Hello! WORLD</H2>\n";
print "</BODY></HTML>\n";

上記の「Hello! WORLD」は表示されるのですが、BBS などの CGI が動きません。
どういった原因が考えられるでしょうか?
412名無しさん:2001/04/02(月) 20:52
>>411
こんなスクリプトを書いてbbs.cgiが出してるエラーをブラウザに表示してみ。

open STDERR@` ">&STDOUT";
$| = 1;
print "Content-Type: text/plain\n\n";
require 'bbs.cgi';
413名無しさん:2001/04/02(月) 21:28
>>411


どーしても駄目だったらActivePerlに替えてみ
414名無しさん:2001/04/02(月) 21:43
>>411
どうせUNIXにしか使えないコマンドを使用しているに一票。
415名無しさん:2001/04/02(月) 21:53
>>360
原因がわかりました
ありがとっす。

#ってきりelseは割り切れない時だと思ってた....鬱だ
416名無しさん:2001/04/02(月) 21:55
>>411

KENT程度も動かないようであれば、それは病気(わ。
417名無しさん:2001/04/02(月) 23:14
418http://rinn.art.cg/menu.jpg:2001/04/02(月) 23:24
419357:2001/04/03(火) 00:05
レス遅くなりましてすみません。
>>358さん
JavaScriptでも同じ事は出来る気がするのですが、
JavaScriptの知識が全く無いんです。
出来るならCGIで。と思ったのですがJavaScript勉強した方が
早いのかも…。

>>366さん
丁寧にありがとうございます。
早速作ってみてちゃんとエラーが出るようになりました。
ただ、リロードすればOKになるのを防ぐ方法は無いでしょうか?
もしかしたら、最初自分が行った方法は、リロードしないと
エラーにならなかったので、組み合わせて「二種類のCookie」を
使用すれば上手くいくのでしょうか?
↓みたいなの方法でもう一度やってみようと思います。

<1> 1.cgi
1を通った証拠としてCookieを食わせる。
2へ飛ぶ。
-追加-
2.cgiで追加したCookieを判別して
受信していたらエラー

<2> 2.cgi
Cookieがあれば正常、なければ不正。
判定後にCookieを削除。
正常なら a.cgiまたはb.cgiへ進む。
不正ならerror.cgiへ。
-追加-
もう一つ別のCookieを送信する。

<3> a.cgi/b.cgi
Cookieは関係なし
420411:2001/04/03(火) 00:11
times not implemented at minibbs.cgi line 266@` <READ> chunk 1.
と出たのですが、頭悪くてどうしていいのか判りません。すいません。
421名無しさん:2001/04/03(火) 02:34
>>411
xxx not implemented 〜
てのは、xxxがそのバージョンのperlに組み込まれてないってこと。
Win98使ってるならありがちな悲劇だ。
422名無しさん:2001/04/03(火) 03:00
>>411
バージョンは何? perl -vしてみて。

5.6のperlport的には↓だから、インプリメントされてない
ってことは、古いバージョンじゃないのかなと思うんだけど。

times

Only the first entry returned is nonzero. (Mac OS)
``cumulative'' times will be bogus. On anything other than Windows NT or Windows 2000@` ``system'' time will be bogus@` and ``user'' time is actually the time returned by the clock() function in the C runtime library. (Win32)

Not useful. (RISC OS)
423357:2001/04/03(火) 20:53

最初に自分が行った処理では1.cgiに戻るボタンで1.cgiに戻った際に
"更新"しないとERRORにならなかったのですが、366さんの助言により
"更新"しなくてもERRORになるようになりました。

ただ"更新"してしまうとやっぱりERRORにならなくなってしまうので、
だったらcookieを二つに増やせば上手くいくのでは?と思い以下のような
仕組みにしたのですが上手く動きません。
流れ図で見れば上手くいくような感じなのですが、cookieの動きがおかしいです。
cookieを受信して、そのcookieを"フォームのポストで送る"という処理は
OKなのでしょうか?
↓の流れだとおかしいでしょうか。すごい見にくくてすみません。

<1>
1.cgi
cookie_xを受信
cookie_yを送信
---
フォームのラジオボタンから
選択肢『A/B』を選ぶ。
同時にcookie_xのデータもSENDボタンより送る。

<2>
2.cgi
cookie_xは、1.cgiのポストからデータを受け取る。
cookie_yの受信。
判定を行う。
cookie_xはあるのか?
ある時は「不正エラー」
ない時は以下の処理に続く。
cookie_yはあるのか?
ない時は「不正エラー」
ある時は以下の処理に続く。
選択肢の判定を行い、選択肢がAであればa.cgiへ。選択肢がBであればb.cgiへ。
cookie_yの削除。
cookie_xの送信。

<3>
a.cgi/b.cgi
特に何もせず。
424>>397 = 409:2001/04/04(水) 08:26
ところでwgetはインストールされてるのかい?(大爆笑)
他にもSocketやLWPでも同じことができるぞ(大爆笑)
過去ログ読まない人も好きだけど、ちょっと読んでみてね(ギャハハー)

------------------------------------------------------------
#!/usr/bin/perl

use File::Find;
print "Content-type: text/plain\n\n";
find(\&Gyahaha@` @INC);
sub Gyahaha { /\.p[lm]$/ && print "$File::Find::name\n"; }
------------------------------------------------------------

インストール済みのモジュールはこれで調べられる鴨よう(大爆笑)
正確にはパスの通ったモジュール等を表示してるだけでちゅ(大爆笑)
出力結果の見栄えが悪いけどゴメンねえ(ギャハハー)
425名無しさん:2001/04/04(水) 08:44
>>424
>表示してるだけでちゅ
(大爆笑) 氏は赤ちゃん言葉がよく似合うね。

426γ−GDP8倍デブヲタ男:2001/04/04(水) 09:22
春厨の季節はいつまで続くんだろうね(大爆笑)
427名無しさん:2001/04/04(水) 10:57
>>421
>>422

有り難う御座います。今からActive Perlを入れてみます。
428大爆笑崇拝者:2001/04/04(水) 12:06
ちょっと待て!
WIN98+AnHTTPdで掲示板スクリプトが使えないだと?
ほぼ間違いなく設定ミスだろ(大爆笑(
429未熟者:2001/04/04(水) 12:31
こんにちは。
WebサーバとMailサーバを1台で運用しています。
各ユーザがwebページから、.forwardファイルを編集して、
転送先を変えられるCGIを作成したいのですが、
どのようにやればいいのかさっぱりわかりません。
何かいい知恵が有りましたら、どうかご教授ください。
よろしくお願いします。

ちなみにIDとパスワードを入力させて、UNIXコマンド(su)で
そのユーザになって書き換えればいいのでしょうか・・・・
(このやり方がまったくわかりません・・・)
430名無しさん:2001/04/04(水) 12:37
429には絶対出来ないな。
431図書委員:2001/04/04(水) 13:01
>>430
きみにもできないよ
432新聞委員:2001/04/04(水) 13:09
>>431
きみにもできないよ
433422:2001/04/04(水) 13:10
>>427
できれば、現状のperl -vも見たいなー。いや、興味本位なんですけど。

>>428
   >>421@` >>422は読めますか?

>>429
PAMを使うとか、いろいろ手はありますが。

ユーザーのホームディレクトリに.forwardという
ファイルが存在すればいいだけであれば

CGI内でファイルを作って、ユーザーに入力してもらったID@`PWDで
FTPする(Net::FTPとかで)のがお手軽でsafeです。
434422:2001/04/04(水) 13:11
さげてしまって。スマソ
435422:2001/04/04(水) 13:17
(大爆笑)使うの忘れた。スマソ
436風紀委員:2001/04/04(水) 13:19
>>435
今度忘れたら生徒手帳を取り上げますよ(大爆笑)
437422:2001/04/04(水) 13:35
ちょっと補足。
たしか、どっかで見たなあと探してみたら、
去年の9月ごとfj.mail.system.sendmail で話題になってます。
Message-ID: <[email protected]>
以下のスレッドです。
趣旨は一緒ですけど。
438422:2001/04/04(水) 13:36
s/9月ごと/9月ごろ/
439未熟者:2001/04/04(水) 14:12
>433様
レスありがとうございます。
サーチエンジンを使ってNet::FTPを調べようとしたのですが、
参考になるような文献が見つかりませんでした。
もう少し補足いただけると幸いです。
よろしくお願いします。
440422:2001/04/04(水) 14:27
>>439
別にNet::FTPを使わなくっても、FTP接続ができれば問題ないです。
Net::FTPについては、CPANでダウンロードしてきてマニュアルを読んでください。
日本語の情報が欲しければ、ちょっと古いですが「モジュール活用ガイド」、
「クイックリファレンス」あたりに説明があります。参考書籍のスレへどうぞ。

モジュールのインストールについては http://member.nifty.ne.jp/hippo2000/perltips/module_install.htm
libnetというものをインストールすると関連するものが全てインストールされます。

....という話ではなくて?
441433=422:2001/04/04(水) 15:46
>>439
時間があいたから、サンプル書いたよ。
Net::FTP利用バージョンね。....仕事しろよ、おれ。。
#!/usr/bin/perl
use CGI;
use Net::FTP;

my $cgi = CGI::new();

# HTMLのフォームは id@` password@` .forwardの中身を指定
my $host = 'localhost';
my $id = $cgi->param('id');
my $pwd = $cgi->param('password');
my $dot_forward = $cgi->param('dot_forward');

my $temporary_file = join ('_'@` $host@` $id@` time@` $$);

open(TEMP@` ">$temporary_file");
print TEMP $dot_forward;
close TEMP;

my $ftp = Net::FTP->new($host);
$ftp->login($id@` $pwd);
$ftp->put( $temporary_file@` ".forward");
$ftp->quit;

unlink $temporary_file;

print $cgi->header( 'text/html; charset=EUC-JP')@`
"$id\@$hostの.forwardを$dot_forward に変更しました。";
442未熟者:2001/04/04(水) 16:25
>433様
ほんと〜〜に、ありがとうございます。
さっそく家に帰ったら、テスト環境で試してみます。
(俺も仕事しろ)
結果報告します。
ありがとうございました。
443http://fusianasan.2ch.net/ :2001/04/04(水) 19:24
guest guest 
444名無しさん:2001/04/04(水) 19:25
いいソフト入手。
今までWin2000で<STDIN>とか実行できないと思ってたら
実行できるようにしてくれるソフトがありました。
ただそれだけ。
445あははー:2001/04/04(水) 19:26
>>444
だったらソフト名くらい書けよヴォケ茄子(大爆笑)
446411:2001/04/04(水) 22:48
>>433
5.003_07 でした。
テレホじゃないので未だ Active Per を DL していなくて。
447>>446:2001/04/04(水) 23:26
古いけどフツーの掲示板スクリプトなら動くにょ(厨爆笑)
448お役に立ちます:2001/04/05(木) 10:27
449名無しさん:2001/04/05(木) 15:37
FAQなような気がするんですけれども、探せなかったのでお尋ねします。
while( <RWHO> ){
  ($name{$id}@` $tty{$id}@` ....) = split ;
}
とやってから、
foreach $item ( %name )
{  print "Name: $name{$item} tty:.. " ;
}
とすると各々2つずつ表示されてしまうのですが、何がまずいのでしょう?
RWHO では
nagaoka pc41:tty1 Apr 5 15:33
misumi pc42:ttyp2 Apr 5 15:30
という形式になっており、実行すると
Name: nagaoka tty: pc41:tty1 ...
Name: nagaoka tty: pc41:tty1 ...
Name: misumi tty: pc42:ttyp2 ...
Name: misumi tty: pc42:ttyp2 ...
と表示されてしまうといった具合です。
お手数かけますがなにとぞよろしくお願いします。
450_gunzip@φ(・▽・:2001/04/05(木) 15:47
>>449
>foreach $item ( %name )
ではなく、
foreach $item (keys %name )
でない?

#それと、ソースを端折りすぎのような・・・
451名無しさん:2001/04/06(金) 04:42
すべてeucでスクリプトを書いている場合、
jcode.plは必要ないんでしょうか?
452名無しさん:2001/04/06(金) 04:51
>>451
掲示板かな。
euc以外の文字コードで投稿されたら困るんじゃないの?
Perlワカランのにレス付ける俺。
453名無しさん:2001/04/06(金) 04:55
>>452
あたり。
>>451
自前でコード変換したり、Jcode.pmを使ったりするなら必要ありません :-P
454名無しさん:2001/04/06(金) 08:15
>>452
euc以外の文字コードで投稿するヴォケブラウザは無視しましょう。
455名無しさん:2001/04/06(金) 08:23
>>454
それは極論。ケースバイケースでしょ。

>>451
IEやNetscapeなどのブラウザはHTMLのフォームと同じ文字コードで
送信するけど、別に義務じゃないのでそうでないブラウザもあるよ。
それに対応するなら、何らかの変換は必要。
456名無しさん:2001/04/06(金) 08:29
>>455
ブラウザのシェアから見てもコード変換はしなくて良いと考えるのが定説です。
457名無しさん:2001/04/06(金) 08:40
だからぁ、ケースバイケースだって
ミッションクリティカルなスクリプトでそれは出来んでしょ
個人サイトの掲示板なら別に対応しなくてもいいと思うけどさ

定説って言う言葉キライ
458名無しさん:2001/04/06(金) 08:49
やり方を知らないからやってないのと、
やり方を知ってるが必要ないからやってないのは結構違う。
確かにケースバイケース。
459名無しさん:2001/04/06(金) 09:12
んでも、ここで「そうだよ」って答えると
HTMLをSJISで吐き出しといて
「コードをEUCで書いたのに文字化けします」とか
言う人がでてきそうでしょ(w
460名無しさん:2001/04/06(金) 09:13
個人サイト向けの話題でいいんじゃないのかな?
461未熟者:2001/04/06(金) 09:30
>433様
サンプルで期待通りの結果が得られました。
どうもありがとうございました。
あとはサンプルを元にエラー処理などを追加していきたいと思います。
それでは。
462完熟者:2001/04/06(金) 13:48
最も古いバージョンのPerlを入手できるサイト(URL)を教えてください
463名無しさん:2001/04/06(金) 16:10
教えてください
メールを送るスクリプトですが大体sendmail用ですよね?
うちのサーバーはqmailを使っているのですがそのまま使えますか?
464弐ch編者:2001/04/06(金) 17:40
465配列の配列で各要素を取り出すには??:2001/04/06(金) 20:08
配列の配列で質問です。

--------------------------
101@`ジョージ@`白@`A@`牡羊座
102@`ジャック@`黄@`B@`牡牛座
103@`ジェシー@`青@`O@`双子座
104@`ジョン@`赤@`AB@`蟹座
--------------------------

↑のデータファイルを

$i = 0 ;
while(<FH>){
unless(/[^\s]/){next ;}
$line[$i] = $_ ;
$line_i = 'line_'.$i ;
@$line_i = split(/@`/@` $line[$i]) ;
push(@all_lines@` @$line_i) ;
$i ++ ;
}

↑の様にして @all_lines に持ってきました。

print "@all_lines" ;

↑の様にすれば

--------------------------
101 ジョージ 白 A 牡羊座
102 ジャック 黄 B 牡牛座
103 ジェシー 青 O 双子座
104 ジョン 赤 AB 蟹座
--------------------------

↑の様に表示されるのですが、
ジェシーを表示させようとして

print "$line_2[1]" ;

とすると失敗しました。

@all_lines には @line_0@` @line_1@` @line_2@` @line_3
が入っていて @line_2 の各要素に $line_2[0] や $line_2[1]
などでアクセスできるかと思ったのですが間違っていました。

@sort = reverse sort
{ (split (/@`/@` $a))[1] <=> (split (/@`/@` $b))[1] } @all_lines ;

↑の様にして名前などで sort したいので配列の配列という状態で
各要素を取り出したいのですが、どうすればいいのでしょう??
466449:2001/04/06(金) 20:30
>>450 _gunzip さん、ありがとうございました。

>foreach $item ( %name )
>ではなく、
>foreach $item (keys %name )
>でない?

その通りでした。でも、これを直しても人によっては2回出てきたりして…
なぜだろう。と思ったのですが取り敢えずの所は1回出てきた所で last
することで大丈夫だったので、これで過ごそうかと思います。
重ね重ねありがとうございました。

>#それと、ソースを端折りすぎのような・・・
そうですね。仰る通りです。
467れれれのれー:2001/04/06(金) 20:41
もしかして$line_iが$line_1とか$line_2になってくれると思ってます?
468465:2001/04/06(金) 20:51
>>467
はい思ってます。
という事はそう思っている時点で
大きな勘違いをしているのですよね??
>>465


$i = 0 ;
while(<FH>){
unless(/[^\s]/){next ;}
$line[$i] = $_ ;
$line_i = "line_$i";
@{$line_i} = split(/@`/@` $line[$i]) ;
push(@all_lines@` @{$line_i}) ;
$i ++ ;
}

@lineをなんに使うかわからないけど、
必要なのかもしれないので取り除かずに
いてみました。

一応、試してみたところ$line_2[1]でジェシーが出ました。

配列名に変数を使う場合{}でくくる必要があったんじゃ
なかったかな?
470465:2001/04/06(金) 22:21
>>469
ありがとうございます。さっそく試しましたが
無事に目的が達成できました。{}で括る必要が
あったのですね。この数日ここでずっと引っかってたので
本当に助かりました。勉強になりました。どうもありがとう!!!
471名無しさん:2001/04/06(金) 22:35
>>470
あと、こういうときは多次元配列も覚えておくと便利だよ。

while(<FH>){
unless(/[^\s]/){next ;}
push @all_lines@` [split(/@`/@` $_)] ;
}

print $all_lines[0][3]@` "\n"; # 配列要素のアクセス
@sort = sort { $b->[1] cmp $a->[1] } @all_lines ; # ソート

この場合@all_linesが「配列のリファレンス」の配列に
なってるのがミソです。
472名無しさん:2001/04/06(金) 22:55
>>463
サーバ管理人に聞くのが一番だけど、普通使えると思うよ。
心配ならソースをここに。
473_gunzip:2001/04/06(金) 23:07
>>470
勝手に補足です......
$lines[0]->[2]
もし、数値だけではどの要素を指しているのか
(この場合は三番目のフィールドだから色の名前です)
分かりにくいなら、use constant で定数宣言して、
use constant NAME => 1;
$lines[0]->[NAME];
のように書くと、少しは分かりやすくなります。
又は下のようにハッシュの配列の形で格納する手もあります。
$i = 0;
while(<FH>){
chomp;
next if /^\s+/;
@{$lines[$i++]}{qw[num name color blood constellation]} = split;
}
上のように書くと、
$lines[3]->{color};
でアクセスできます。
474名無しさん:2001/04/06(金) 23:20
ちょっと話がそれるかもしれないけど、お絵かきチャットってありますよね。
あれ、自分のパソで立ち上げるんじゃなくて、サーバに設置することはできないんですかね?
475弐ch編者:2001/04/06(金) 23:45
あまりに低レベルな人が多いですね、、、
2chの限界ですか、、、
476名無しさん:2001/04/07(土) 13:53
>>475
オマエモナー
初心者すれなんだからいいじゃん。

>>そのた
いつもお世話になってます。
最近ようやく->や=>の意味を知りました。
多次元配列って便利そうですね。
これからも色々勉強していきたいと思います。
これからもよろしくお願いします。
477名無しさん:2001/04/07(土) 14:50
>>475
コイツに言われる日が来ようとはな(藁
メガビに帰れよ。
478名無しさん:2001/04/07(土) 14:55
PART1から通して読んだけど、このスレは役に立つなあ。
あげあげ
479名無しさん:2001/04/07(土) 14:59
>>473を見て思い出した質問。定数を定義するのは、やっぱし
use constant NAME=>1;
と書くほうがいいですか。おれの場合、Perl4時代に覚えた
sub NAME() {1};
つーのを愛用してるんだけどー。
こっちのほうが、効率いいような気がするし(根拠なし妄想)
480弐ch編者:2001/04/07(土) 15:14
>メガビに帰れよ
んで?
481名無しさん:2001/04/07(土) 15:20
↑本物ですか?
482_gunzip:2001/04/07(土) 15:32
>>479
constantプラグマのソースを見る限りでは、constantプラグマは
use constant NAME => 1;
のように使用した場合
#constant.pm =line%91
*$full_name = sub () { $scalar };
(補足: $fullname = "main::NAME"@`$scalar = 1)
でmainパッケージにプロトタイプ()の定数1を返すサブルーチンNAME
を定義しているだけなので、>479さんのように
sub NAME() {1}
とした場合と効果/効率はあんまり変わらないと思います。
(どちらにしてもインライン化されるわけですし)

・・・ただ、constantはその前に色々と
-Perl のキーワードと重複しているものがないか
-重複して宣言されているものがないか
-mainパッケージに属さなくてはいけないシンボル名ではないか?
のような事をチェックしているので、安全を期すならばconstant
を使用した方がいいかもしれません。
もし、その点については大丈夫なら、sub NAME(){1} の方が
(毎回のチェックを省ける分だけ)効率が良いと思います。
(ん・・・とは言えそんなに気にするほどでもないような気もします)
483_gunzip:2001/04/07(土) 15:34
あと、参考までに。

perldoc perlsub

Constant Functions
Functions with a prototype of () are potential candidates for inlining
If the result after optimization and constant folding is either a constant or a
lexically-scoped scalar which has no other references@` then it will be used in
place of function calls made without &. Calls made using & are never inlined.

484477:2001/04/07(土) 15:36
>>メガビに帰れよ
>んで?

語彙の乏しいやっちゃな。
485479:2001/04/07(土) 16:10
>>482-483
どーもです。やっぱこれからuse constantに切り替えよっと。

483を見ると、定数はlexical-scopeで見える場所で宣言しないと
定数として使えないんですね。。。
sub init {...} みたいな初期化関数を用意して、
そこでグローバルな定数が宣言できたらいいのにな。
486名無しさん:2001/04/07(土) 16:31
>>479-485
むしろそこまで行くと中級者向けなのでは?
初心者コーナーでは、ちと厳しいかと。

どこからが中級者かは難しいとこだけど。
487479:2001/04/07(土) 16:41
>>486
あのスレは敷居が高かったじゃーん。行くのこわいよ。
ハ!もしや最近のアレは敷居を低くするための秘密工作ナノカ!
488T女の竹田:2001/04/07(土) 18:35
えーと、
$self->{REMOTE}というハンドルがあるのですが、
print $self->{REMOTE} "...";
のように書くとエラーになってしまいます。
(String found where operator expected in ... というエラー)
$dummy=$self->{REMOTE};
print $dummy "...";
と書くとエラーにならないのですが、どうして前者では
いけないのでしょうか?
489名無しさん:2001/04/07(土) 18:54
>>488
print $self->{REMOTE} . "...";
文字列はきちんと連結させましょう。
490名無しさん:2001/04/07(土) 19:15
アイコン掲示板で、タグoptionで「専用アイコン」ってチェックして、
削除キーの方で、どのアイコンを使うか選択できるようなのってできませんか?
わざわざ「○○専用」とかってoption追加してくのは大きくなるし、
エディタの上のほうで
@users_icon = ('ico1'@`'ico2');
@users_pass = ('pass1'@`'pass2');
てできた方が楽なので。
一応それらしいのにしてみるんですけど、構文エラー連発するし・・・
491名無しさん:2001/04/07(土) 19:16
>>487
489みたいなお馬鹿さんはほっといて、

print {$test->{REMOTE}} "...";

とするべし。
492491:2001/04/07(土) 19:16
おっと、すまね。
>>488
493くりぼー:2001/04/07(土) 19:17
YOMI−サーチ置いたんですけど
どうも新規登録しようとしたり、
使い方見ようとすると、TOPに戻されちゃうんですが
誰か何処が悪いかわかるでしょーか?

アドレス:http://www27.tok2.com/home/saico/
494名無しさん:2001/04/07(土) 19:39
>>490
そういうのは改造スレのほうで、ソース見せて聞くほうがいいぞ。
http://tako.2ch.net/test/read.cgi?bbs=perl&key=958370869&ls=10
いま週末だから親切な暇人が相談にのってくれる可能性はある

>>493
単に設定まちがってるだけじゃねーの?
495名無しさん:2001/04/07(土) 20:20
>>494
ども、じゃ、改造工房逝ってきます。
496くりぼー:2001/04/07(土) 20:47
>>494
そーかな何度も確認してたしよーわからん
誰か設置してた人アドバイスきぼーん
497T女の竹田:2001/04/07(土) 20:58
>>491=492さん
ありがとー。それでうまくいきました。感謝です〜

# ここの板って役に立つ情報多いですよね。
# 私は最近来たのでそれほど詳しくないので、どなたか昔からいらっしゃる方、
# http://corn.2ch.net/test/read.cgi?bbs=entrance&key=982571387
# 書いてください〜
498名無しさん:2001/04/07(土) 21:49
CGI、Perl、レンタルサーバ板
名無し:名無しさん

■傾向
住民は少ない方だと思われる。
ポコポコ駄スレが発生するため、レス数の少ないスレが目立つ。
板名としてレンタルサーバと有るが、基本的に無料鯖についてはWeb製作板が担当、
有料鯖はCGI板が担当となっている。
当板住民としても何故PHP板が分離されたのかは不明。

■ヒト
コテハン率低いのか高いのか・・・。
むぎ茶発生率高し。弐ch編者ただひたすらにイタい。JAPUさん戻ってこない・・・。

■お勧めスレ
・Perl初心者コーナー
 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156

---------------------------------
ってトコか?
499T女の竹田:2001/04/07(土) 22:05
>498
_gunzipさん、JAPUさんの紹介もお願い〜
あと、むぎ茶さんがなにげにけっこうまともなこと言ってるのも
押さえてほしいかも〜。って自分で書いてもないのに
注文つけてごめんなさい^^;
500489:2001/04/07(土) 22:25
思いっきり勘違いしてた。

>>488さん、ごめんなさい。
>>491-492さん、ありがとうございました。
501488(竹田):2001/04/07(土) 22:32
>>500=489さん
いえいえ。
502名無しさん:2001/04/07(土) 22:43
CGI、Perl、レンタルサーバ板
名無し:名無しさん

■傾向
ポコポコ駄スレが発生するため、レス数の少ないスレが目立つ。
また、質問は質問スレ・初心者スレ・改造スレ等の既存スレに書かないと直ぐに
「-------------------------終了-------------------------」
と書かれる。

板名としてレンタルサーバと有るが、基本的に無料鯖についてはWeb製作板が担当、
有料鯖はCGI板が担当となっている。

むぎ茶が煽り専用共用ハンドルとして大活躍。
レスが10以上ついてるスレでは1スレ1むぎ茶以上になっている。
極稀にスルドイツッコミをいれる。(あくまで極稀)

当板住民としても何故PHP板が分離されたのかは不明。

■ヒト
コテハン率低いのか高いのか・・・。
主なコテハン(良い人編)
・JAPU:初心者な質問にも丁寧に答えてくれる。アニヲタ且つロリコンである。最近不在。(URL:http://www.japu.org/他
・_gunzip:こちらも質問によく答えてくれる。
主なコテハン(イタい人編)
・弐ch編者:ただひたすらにイタイ。帰れコールが鳴り響く・・・。(URL:http://www.megabbs.com/

■お勧めスレ
・Perl初心者コーナー
 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984430156
・CGIだけど、なんか質問ある?
 http://tako.2ch.net/test/read.cgi?bbs=perl&key=984388283
・CGI改造工房
 http://tako.2ch.net/test/read.cgi?bbs=perl&key=958370869
・あなたのCGI探しますスレッド
 http://tako.2ch.net/test/read.cgi?bbs=perl&key=977498668
・おすすめの共用レンタルサーバー
 http://tako.2ch.net/test/read.cgi?bbs=perl&key=982395887
・専用レンタルサーバ
 http://tako.2ch.net/test/read.cgi?bbs=perl&key=975537991
・せっかくだからこのスレで掲示板作ってみませんか?
 http://tako.2ch.net/test/read.cgi?bbs=perl&key=959378033


_guzip氏の紹介思いつかない・・・。
503名無しさん:2001/04/07(土) 22:49
_gunzipは確か医師じゃなかったか?
でも、それで十分いい出来だと思うぞ >>502
504498&502@スレ違いスマソ:2001/04/07(土) 22:57
じゃT女の竹田さんOKなら書いてきてくれ(ぉ
505名無しさん:2001/04/07(土) 23:08
ホント関係ないけれど、何でこの板はfushianasanスレが乱立するのだろう。
506名無しさん:2001/04/07(土) 23:26
最近のここの弐編ってニセモノであ?
507465で「配列の配列」の質問をした者です:2001/04/07(土) 23:28
>>471
>>あと、こういうときは多次元配列も覚えておくと便利だよ。

あ、そうやって読み込めば良かったのですか。
どうすれば要素数が未定のデータを $all_lines[0][3] という風に
読み込めるのかがわからなくて、配列に変数名を使うことで
解決を試みていました。さっそくスクリプトを見直して取り入れてみます。
これはいい事を教わりました。ありがとうございました。

>>473 _gunzip さん

定数宣言またはハッシュを利用すれば読みやすくなる、
ということですね。配列の配列に取り込むという目的の達成に
精一杯でしたので、読みやすさまで考慮に入れていませんでした。
大変勉強になりました。ありがとうございます。

>>473 以降の展開
ちょっと私のレベルではついていけません、すみません。
順を追って消化して理解できるように精進します。


少し話しがそれてしまうかもしれませんが、
テレホ利用のサーバーアップだけで Perl を上達しようなんて
無謀でしょうか。Perl 覚える前にアパッチの設定を覚えろ、
っていうことなんでしょうか。みなさんどうされていますか?
508名無しさん:2001/04/08(日) 00:06
あぁんHTTPDで自分の中でやってぇ♪
509名無しさん:2001/04/08(日) 00:34
カレントディレクトリをひとつ下に移動する方法教えてください
chdir(..);とchdir(../);としてみたらエラーになりました
510名無しさん:2001/04/08(日) 00:39
上級者の人って use strict 使う人多いような気がするんですけど、
なにがいいの?
511/bin/名無しさん:2001/04/08(日) 01:42
>>509

下のどのディレクトリかわからんとかけん。
上ならば chdir '..'; だが。
512名無しさん:2001/04/08(日) 01:49
>>510
上級者はしらないが、おれはデバッグ時のタイプミスの発見が主な目的。
513509:2001/04/08(日) 02:54
行きたかったのは上でした。。
chdir '..';でできました。ありがとうございます。
514白き騎士:2001/04/08(日) 13:19
自作のモジュールを世界に公開したいです
書式は決まっているのですか?
5151:2001/04/08(日) 14:56
★★★ ここまで読んだ ★★★
516名無しさん:2001/04/08(日) 15:25
↑誰だ?
517名無しさん:2001/04/08(日) 17:06
さくらのバーチャ使ってるんですけど
$ENV{REQUEST_URI}
$ENV{REDIRECT_STATUS}
が空白になってしまいます。
こういうのは簡単に設定変えられるのでしょうか?
変えられるようならば要望を出してみようかと思ってます。
518517:2001/04/08(日) 17:11
失礼 ENV{REQUEST_URI}は出てきました。

$ENV{REDIRECT_STATUS} には200とか404とかが入ると思うのですが
やはり空白になってしまいます。
519名無しさん:2001/04/08(日) 18:08
200って出たっけ?
520名無しさん:2001/04/08(日) 18:09
100行程度のスクリプトを書いて、
HTPPDでオフラインテストでは動くのですが、
サーバにあげると動かないのですが
その場合の原因はどういうことがあるでしょうか?
521名無しさん:2001/04/08(日) 18:23
>>520
ありがちなのは
(1) 1行目の"#!/usr/bin/perl〜"のパスが違ってる
(2) 1行目の改行コードが不正(ASCIIモードで上げてない)
(3) 必要なモジュール(.pm)やライブラリ(.pl)がサーバにない
522名無しさん:2001/04/08(日) 18:28
>>519
RewriteRuleでURLをリライトしたときはデフォルトで
REDIRECT_STATUS=200になるよ。
つーかRewriteRule以外で飛ばしたときもREDIRECT_STATUSって
出るんですか?どうやるの?
523素人:2001/04/08(日) 22:08
誰かこの初心者コーナー1-4スレのダイジェスト
みたいなのを作ってくれないかなあ。
情報量としては結構あると思うのだけれど。
524名無しさん:2001/04/08(日) 22:12
>>510
俺も>>512と似ているがデバッグの軽減。
リリース版のときにはコメントアウトする。
>>514
モジュールそのものの書式は決まってないと思う。
POD(ドキュメント)の書き方はperldoc perlpodを参照のこと。
525名無しさん:2001/04/08(日) 22:18
>>520
サーバーのPerlが古いと特定の構文を理解してくれない場合が
ある模様。
(別の原因かもしれないけど、俺にはわからない)

俺の使ってるところだと、例えば
$a ||= 1;
みたいなものが入っているとエラーになる。
当然オフラインでは動くんだが。

トクトクやフリーウェブでスペースを借りてみて
そこで動くかどうかを試してみるのも一興。
526名無しさん:2001/04/08(日) 22:27
>>520
KCatch.pmを入れてみると吉かも。
527520:2001/04/08(日) 22:50
>>521 525 ありがとうございます。
どれもクリアーしてるんですよ。
再チェックしてみたんのですが、
動かないと言うのも間違いで、表示されない状態です。
外枠のテーブルだけが表示されてて、一本細いのが出てました。

内容は、外枠テーブルの内部をループさせて更にテーブル横並べていき、
一定数したら、下におりて、さらに横にという感じで表示させようとするものです。
■■■■■
■■■■■
■■■■■
↑こんな感じ

HTTPDでは、動作してます。サーバにあげると内部のループ部分が
表示されてないのだと思います。
ループの記述が迷ってるのかな? なんでだろう?
528520:2001/04/08(日) 22:51
>>526 どうも。
KCatch.pm ってなんですか? 調べてみます。
529弐ch編者:2001/04/08(日) 23:25
で?
530526:2001/04/08(日) 23:26
KCatch.pmについてはPerl初心者の部屋からリンクがあるはず。
でも今回は関係ないみたいだね。
出力されているHTMLが問題なら、オフラインで動いたときの
HTMLとサーバにあげてうまく動かないときのHTMLがどう違うか
まずソースを見てみては?
531名無しさん:2001/04/08(日) 23:42
弐編いい加減出てくるなよ。
532弐ch編者:2001/04/08(日) 23:59
黙れヴォケ、ぱかですか?
533名無しさん:2001/04/09(月) 00:01
弐編いい加減出てくるなよ。
534弐ch編者:2001/04/09(月) 00:04



アホ大量出現で停滞していたけど、ここにスレ再開を宣言する。


535520:2001/04/09(月) 00:36
>>530 ありがとうございます。
早速HTMLを調べてみると、
たぶん、ココが悪いようです。
if ($check){
&html;
}
else{next;}
こういう書き方は間違ってるのでしょうか?
536弐ch編者:2001/04/09(月) 00:38
やっぱやめ
537名無しさん:2001/04/09(月) 00:43
>>535
それだけでは判断つきません。
よい書き方ではないかもしれないけどね。
そこがうまく動いてない原因と思った理由はなに?
538520:2001/04/09(月) 00:58
>>537 ありがとうございます。

$check に1が入ってたら表示する。
>そこがうまく動いてない原因と思った理由はなに?
&html;
サブルーチンだけだと、表示されるんです。
if (!$check){next}
&html;
これだとダメでした。 やっぱ全体ださないと意味不明ですね。
539T女の竹田:2001/04/09(月) 01:59
>>523
>ダイジェスト
いいかも。でも今日はもう寝るから、明日以降少しやってみようかな。
540名無しさん:2001/04/09(月) 05:31
昔設置したゆいちゃっとProを使っているんですけども
imodeではフレーム無し版で問題なく参加できるのですが
EZwebですと当たり前ですがおかしくなります。

どなたかEZweb対応型に改造を試みた方はいませんでしょうか?
541名無しさん:2001/04/09(月) 16:50
例えばSocketを書くよりも、
LWPなんかのモジュールを使った方が、
サーバーにかける負荷を減らす事が出来るんでしょうか?
542>>541:2001/04/09(月) 17:22
そんなことわかんないよ(大爆笑)
データのサイズ、メモリやCPU占有率にもよるでしょ(大爆笑)
543名無しさん:2001/04/09(月) 18:16
えーっと。。
サーバーとしましてはクライアントがLWP使っていようがいまいが
知ったこっちゃ無いんですが・・・
もしかして、HTTP::Daemonとかの話ですか
544名無しさん:2001/04/09(月) 18:23
>>543=ばか
545名無しさん:2001/04/09(月) 18:37
>>544
どこらへんが馬鹿なのか教えていただければありがたいのですが・
5461:2001/04/09(月) 21:06
★★★ ここまで読んだ ★★★

解決した人は[[解決]]ボタンを忘れずに押すこと!
547名無しさん:2001/04/09(月) 22:11
↑騙るなよ
548名無しさん:2001/04/09(月) 23:31
>>545
544じゃないけど、彼は 541を「CGIスクリプトでの話」だと
仮定して、文中のサーバーを「スクリプトを実行している
サーバー」だと取っているみたい。

543は 541文中のサーバーを「先方のサーバー」と
思っているみたい。

>>546
読んだら、まとめてね&hearts;
549名無しさん:2001/04/10(火) 02:06
KENT-WEBより>> ロック処理でopen関数式を廃止。
これって、どういうことですか?
550名無しさん:2001/04/10(火) 06:29
>>549
クソなロック方法を廃止ということ
551名無しさん:2001/04/10(火) 22:41
use strict;

してるときに、コンフィグとかのファイルを

require('./config.ph');

---config.ph---
$X = "a";
1;
--------------

すると
Global symbol "$X" requires explicit package name at xxx.cgi line 3.
って当たり前の如く怒られてしまいます。

requireするファイル毎に
use vars qw($X)
と書くのは少しメンドイので
これってどうやって回避するののが一番良いのでしょうか?
552_gunzip:2001/04/10(火) 23:10
>>551
perldoc strict
This generates a compile-time error if you access a variable that wasn't
declared via ``our'' or use vars@` localized via my()@` or wasn't fully qualified.

ですので、Perl5.6以降ならばourを用いて
our $X = "a";
と宣言するのが一番です。
又は、(5..6以前ならば)
$main::X = 'a';

my $X = 'a';

use vars qw[$X];
とするといいです。

#varsプラグマはもうobsoleteらしい。
553名無しさん:2001/04/10(火) 23:35
ソケットを使ってサーバに環境変数を渡す場合、

print S "Referer: $ENV{'HTTP_REFERER'}\r\n";

と言った感じで良いのでしょうか?

また、それが上手く行っているかどうかローカルでチェックするためには
どうすれば良いでしょう。

どなたかよろしくお願いします
554名無しさん:2001/04/11(水) 00:49
>>553
> print S "Referer: $ENV{'HTTP_REFERER'}\r\n";
それでOK。
> また、それが上手く行っているかどうかローカルでチェックするためには
> どうすれば良いでしょう。
問題があればサーバからのレスポンスでわかるんじゃない?
全てのやり取りを見たいならパケットを調べればわかるよ。
555名無しさん:2001/04/11(水) 01:57
共有のチャットサイトをやっていて、アクセス元を調べたくて、
アクセス解析をつけようとしたのですが、うまくいきません。
下のタグを解析したいページに入れるのですが、CGIがわからなくて
入室フォームなどのHTML部分のところに入れたりしていましたが、
うまく解析されませんでした。どうしたらよいかわかる方がいらっしゃい
ましたら、よろしくお願いします。

■解析のタグ
<SCRIPT Language="JavaScript">
&lt;!--
document.write("<img src='http://〜〜/report/report.cgi?");
document.write(document.referrer+"' width=1 height=1>");
// --&gt;
</SCRIPT>

■解析をしたいチャット
http://dream.lib.net/room/cgi/e_lchat.html


556名無しさん:2001/04/11(水) 02:00
>>554さん
返答有難うございます。
ログは取得できるようになりました。しかし、

MIME-Version: 1.0 Server: AnWeb/1.29d Date: Tue@` 10 Apr 2001 16:55:27 GMT Content-Type: text/html Connection: close Content-Length: 208
Error 403
Server Error: doesn't pass protocol : http

このようなエラーが出てしまいました。
多少$ENV{'HTTP_REFERER'}をいじる必要があるのでしょうか・・。
557名無しさん:2001/04/11(水) 02:00
>>555
改造スレなら、レスがつきやすいと思いますよ。
http://tako.2ch.net/test/read.cgi?bbs=perl&key=958370869
558名無しさん:2001/04/11(水) 02:34
>>557
改造スレってあったんですね。初めて知りました。
ありがとうございましたそっちの方で聞いてみます。
559553:2001/04/11(水) 04:27
先ほど色々やったのですが、

print S "GET $ENV{'HTTP_REFERER'}\r\n";
print S "Referer: $ENV{'HTTP_REFERER'}\r\n";


print S "Referer: $ENV{'HTTP_REFERER'}\r\n\r\n";#本当はRefererじゃないです

で、一応結果はでました。(今から色々チェックですが)
http://x68000.startshop.co.jp/~68user/
このあたりを参考にしたんですが、他の有用なソケット関連の
ページってありますか?
参考書籍スレッドで探すと一般のスクリプトは詳しくて、ソケットは薄かったり
するので・・・
560名無しさん:2001/04/11(水) 06:37
>>559
入門者の俺的に役立ったサイト。貴方にとってどうかは分からないよ?

Perl モジュールリファレンス
http://www.bekknet.ad.jp/~bero/docj/module/
窓流!CGIプログラミングのノウハウ
http://www2.yomogi.or.jp/watanabe/win/win_op.htm
Perlによる簡単なCGIプログラムのサンプル/リンク集
http://www.harukaze.net/~mishima/perl/cgi_sam1.html
Perlでプログラミング
http://www.net0726.ne.jp/~pandasan/Perl/index.html
561名無しさん:2001/04/11(水) 08:54
ttp://www.hoge.com/cgi-bin/bbs.cgi?sub=はじめまして&comment=こんにちわさようなら
で書き込めるようなCGIを設置しています
イレギュラーかと思われるかもしれませんが、入力フォームを作らずに
メンバー各人に上記のように直接入力してもらう形をとっています
(非メンバーからの書き込みをできなくするため。参照はできます)
さて上記の こんにちわ と さようなら の間に改行を挟むことは出来るのでしょうか?
最初はチャットのCGIを使っていたので気にならなかったのですが、
書き込み側から複数行書き込み出来るようにして欲しいと要望があり、
実際出来るのか分からなくて困っています
お知恵を拝借できるとうれしいです。よろしくお願いいたします
562名無しさん:2001/04/11(水) 09:29
>>561
メンバー各位に書き込みモードを教えるのではいけないのか?
bbs.cgi?mode=write
のように。
入力フォームを作らないなど正気の沙汰とは思えないぞ(w
563全角のナナシサン:2001/04/11(水) 09:50
そんなもん、貴方のBBS(?)の仕様が分からなければ答えようがないような気が。

comment=こんにちわ<br>さようなら
と打ち込んでもらうとか、
comment=こんにちわ<>さようなら
と改行部分を使われそうもないような文字(この場合<>)
で表示するときにそれを改行に変換するとかしかないんぢゃないの?

>>562の意見に一票。
564名無しさん:2001/04/11(水) 12:04
>>561
%0A がエスケープされた改行文字。
cgi-lib.plやCGIモジュールみたいに
エスケープ文字列を元に戻す処理があって、
複数行に対応してるんなら多分使えるだろう。

目的のCGIのURL宛ての入力用フォームが書かれたHTMLファイルでも
相手に送っておけばブラウザがエスケープ処理もまとめてやってくれるからいいと思うが。
565名無しさん:2001/04/11(水) 12:18
>>564
>%0A がエスケープされた改行文字。
ありがとうございます!これでいけました。

>目的のCGIのURL宛ての入力用フォームが書かれたHTML〜
最初は実はこれだったんですが、携帯端末の人が現れたので・・・

他にレスいただいた方々 変な質問にお答えいただき本当にありがとうございました
566ななしさん:2001/04/11(水) 16:05
データの読み込みについて質問です。
open(FILE@`"./bbs.dat");
@data = <FILE>;
close(FILE);
とやって@dataにデータを入れ込むと、ファイルがでかいと
メモリ食いまくりますよね?
データ読み込みでセオリーな方法があれば教えてください。
567名無しさん:2001/04/11(水) 16:21
データをどう使うかにより変わるので一概には言えません。
普通に上から出力していくなら、
while(<FILE>) {
&nbsp;&nbsp;&nbsp;&nbsp;print;
}
ってな感じで。
568ななしさん:2001/04/11(水) 16:43
説明不足でした。
掲示板の記事データを読ませたいのですが、
1ページに表示できる記事数を決めておくと、
あふれた分は、無駄に読み込んでしまいます。
最初のページの場合は読み込み止めればいいですが、
2ページ目とかは、1ページ目の分のデータは必要ないですよね?
その無駄な読み込みってしないといけないのかなぁと・・・
Cとかみたいにファイルの途中から読めればいいのに。
569名無しさん:2001/04/11(水) 16:56
>>568
途中から読むことも出来ます。
インデックスを作ってseekしなさい。
570名無しさん:2001/04/12(木) 05:50
掲示板のログを検索できるスクリプト作ろうと思ってます
参考になるサイトやCGI教えて下さい
571むぎ茶:2001/04/12(木) 07:16


namazu

572てん茶:2001/04/12(木) 11:43


kakasi
573こぶ茶:2001/04/12(木) 13:32


grep
574名無しさん:2001/04/12(木) 21:25
初歩的質問で申し訳ないのですが、
「/」の逆向きはどうやって打つのですか?
バックスラッシュですよね。。
575名無しさん:2001/04/12(木) 21:29
>>574
\がバックスラッシュです。
576弐ch編者:2001/04/12(木) 23:29
相変わらず入門以下ですね、、、(^^;)
577むぎ茶      :2001/04/12(木) 23:37


君は人生の入門以下だね。(n


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
http://www.freeml.com/ml_info.php?ml=bitvalley
578名無しさん:2001/04/13(金) 00:11
やっぱり2ちゃんで聞かなければ良かった(悲
579名無しさん:2001/04/13(金) 00:33
そんなあなたにむぎちゃんねる
580名無しさん:2001/04/13(金) 00:35
$a =~s/ー//g;
みたいに ーが含まれると500エラーが出ます
なぜなんでしょうか?
581名無しさん:2001/04/13(金) 00:37
Cの機嫌が悪い
582名無しさん:2001/04/13(金) 01:01
>>580
"ー"は2バイト目が"["と同じ値なので正規表現が破綻して
Perlが中断してるんだな。正規表現にShift_JISを含めるときは
s/\Qー\E//g; などと書くのがお約束。この場合\Eは省略可。
583名無しさん:2001/04/13(金) 01:19
>>578
にへんだの、むぎだのは無視しろ
584580:2001/04/13(金) 02:14
>582
ども できました。
585名無しさん:2001/04/13(金) 05:52
弐編Uzeeeeeeeee.
低学歴Uzeeeeeeee.
586名無しさん:2001/04/13(金) 13:07
アルゴリズムってなんですか?
587名無しさん:2001/04/13(金) 13:36
>>586
問題に対する、コンピュータ上での解法のことだと
理解すれば間違いはないと思います。
アルゴリズムを特定のプログラム言語で書くと、プログラムになります。
...この板向けの話題じゃないと思いますけど。
588名無しさん:2001/04/13(金) 13:46
今までロックファイルを単純に考えていましたが、
その手法もたくさんあることを知りました。
皆さんはどんな手法ですか?
また、いま流行りの手法とか、一般的な手法とかってありますか?
また、ロックファイルは多少コストがかかっても強固にした方が
いいんですか?
589むぎ茶      :2001/04/13(金) 13:50


ファイルロック。

590弐ch編者:2001/04/13(金) 14:52
宣伝♪
http://megabbs.com/cgi-bin/readres.cgi?bo=lobby&vi=986690941
でココよりはるかに高度な話題を扱ってますです、、、
591名無しさん:2001/04/13(金) 14:59
ちょうど私もロックについて調べてて・・・
取り合えずとほほさんの方式でいいやってことにしました。
ここには「消えにくい」としか書いていないのですが、
このロックでデータファイルが壊れるのって、どういうときでしょう?
あれ見る限りでは、データが壊れる理由がさっぱり分かりませんでした。
誰かさわりでも良いので教えてください。
もしかして、%SIGなんたらっての関係します?
とほほさんの奴http://wakusei.cplaza.ne.jp/twn/wwwcgi8.htm
592fobidden:2001/04/13(金) 15:01
そこ良いよね うん
でも 管理人がチキガイだから行かない
593名無しさん:2001/04/13(金) 15:02
>>590
マジで言ってる?
ココの方が遙かにレベル高いよ。(そっちと比べたらな)
594名無しさん:2001/04/13(金) 15:08
>590
て、程度低くぅ
595名無しさん:2001/04/13(金) 15:14
なんで弐編さんて自分でイタイ事に気付いてないのかな。。。
人間的に激痛だ。。。つうか、ますです、、、とか
ひろゆき語寒いよ。。。
まぁそれしか自分の生き甲斐無さそうだからいいけどさ。。。
絶対いじめられて登校拒否になったタイプだな。。。(;´Д`)
いや、別にいいけどさ、はっきり言ってうざいよ、かなり。。
596名無しさん:2001/04/13(金) 15:23
> perl4では動かないです、、、多分全部。
> だってたしか
> open READ@`"hoge.txt";
> NGでしょ?
> open(READ@`"hoge.txt");
> こうでしょ?

ありがとう。笑わせてもらった(p

597名無しさん:2001/04/13(金) 15:23
わお、二編くん。いいよ、うんそれいい。
その調子でがんばってよ。
http://megabbs.com/cgi-bin/readres.cgi?bo=lobby&vi=986690941

超初心者のみんな
二編くんが此処よりはるかにやさしくおしえてくれるよ!
もう此処に恐々質問する必要もないよ
さ、逝っちゃって

よって、このスレ終了。
ここは二編の程度の低さがわかったものだけが来る
ってわけにはいかねーか
598名無しさん:2001/04/13(金) 15:28
まあまあ(笑)
599名無しさん:2001/04/13(金) 15:37
2変さんの全部読んだけど、全部読み終わって
>ココよりはるかに高度な話題を扱ってますです
はネタだと分かった。。。理解してやれなくてごめん>似変さん。
ド素人の俺でも分かる事を書いて周りが「惚れた」とか言ってたのがウケた。
あそこって強烈な電波を帯びてるな。。。あ、あのスレもネタなのか。。。
600名無しさん:2001/04/13(金) 15:42
うん。さすがにコレはネタだね。
ま、あんまり言うのも酷じゃない?
#俺は弐編じゃないよ。
601名無しさん:2001/04/13(金) 15:44
弐編って弐ch変出者でしょ?
602名無しさん:2001/04/13(金) 16:46
弐編はチョンらしい
603弐ch編者:2001/04/13(金) 17:53
あんたら自分のレベルをわきまえた方がいいよ、、、(^^;)
604名無しさん:2001/04/13(金) 18:00
弐編のネタって面白いね。
605名無しさん:2001/04/13(金) 18:13
------------------------- 中 断 -------------------------

┌───────────────────────────────┐
|       CGI、Perl、レンタルサーバ板通達【重要】           &nbsp;&nbsp; |
|                               &nbsp;2001年04月13日&nbsp;&nbsp;&nbsp;&nbsp; |
|                                  ひろゆき  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |
|                                  &nbsp;[印略]  &nbsp; &nbsp;  |
|                                          &nbsp;&nbsp;&nbsp;&nbsp; |
|これより弐編の発言に反応したヤツは弐編と同レベルの馬鹿とみなす。  |
|弐編が発言しても無視する事。                     &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; |
|                                          &nbsp;&nbsp;&nbsp;&nbsp; |
|以上                                       &nbsp; &nbsp; |
|                                          &nbsp;&nbsp;&nbsp; &nbsp;|
└───────────────────────────────┘

------------------------- 再 開 -------------------------
606弐ch編者:2001/04/13(金) 18:18
あんたらって、九官鳥か壊れたチクオンキみたいに同じ主張を繰り返す
単なるおばかさんだね。誰もまともに相手になんてしてないよ。
まあ、ときどきテキトーにいたぶって遊んでやるから。
607むぎ茶      :2001/04/13(金) 20:18


中卒(登校拒否)だから、この程度だろ(n


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
http://www.freeml.com/ml_info.php?ml=bitvalley
608名無しさん:2001/04/13(金) 22:00
すいません、にへんなんとかって人の話はどうでもいいので、

588 名前: 名無しさん 投稿日: 2001/04/13(金) 13:46

今までロックファイルを単純に考えていましたが、
その手法もたくさんあることを知りました。
皆さんはどんな手法ですか?
また、いま流行りの手法とか、一般的な手法とかってありますか?
また、ロックファイルは多少コストがかかっても強固にした方が
いいんですか?

の解答をお願いします。
609名無しさん:2001/04/13(金) 22:11
なんで弐編はオバカちゃん♪
610名無しさん:2001/04/13(金) 22:22
流行というか、一般的というか・・確実なのはflockでしょ。
ただ、ひじょーーに起こりにくいですが、
open FILE '+< file';
flock FILE@` 2
# 書き込み操作
close FILE;
は、書き込み動作中に何らかの理由(停電とか)でプロセスが
死んだときに壊れるので、完璧ではないです。
ロックファイルを用意して、そいつをロックしつつ、
テンポラリファイルに書いてrenameするのが一番確実かと。
611いるか:2001/04/13(金) 22:27
perlで画像アップロードする時、サムネイル画像も同時に作成する
方法はあるの?
また、画像変換(例:gif→png@`jpg)はperlで出来る?
612名無しさん:2001/04/13(金) 22:41
>>611
サーバに画像処理ソフトがインストールされてないと
むずかしいよ。おれはImageMagickつーのを入れてます。
これはPerlから呼び出すのも簡単でおすすめでっせ。
あとnetpbmてのが昔から有名か? 他にもいろいろあると思う。
まあサーバ管理者に聞いてみて。
613ソート:2001/04/15(日) 04:43
配列をソートした時に同じ値の要素があると
ランダムに順番が入れ替わってしまうのですが
そういうものなんでしょうか??
それとも同じ値の要素は互いの順番を固定する、
という感じのオプションがあったりするのでしょうか?
614名無しさん:2001/04/15(日) 05:04
たぶん配列の配列とかをソートしてると思うんだけど、
そういうものです。
もう一個ソート条件付けるとかして何とかしましょう。
615613:2001/04/15(日) 05:21
そうですか、やはり魔法のオプションは無かったのですね。
ありがとうございます、何とか工夫してみます。
616名無しさん:2001/04/16(月) 22:51
age
617名無しさん:2001/04/17(火) 00:12

現在、掲示板CGIにてタグの書き込み禁止処理を
下記のようにしているのですが
追加で、改行を無効にすどうすればいいのでしょうか?
$cmt =~ s/&/&/g;
$cmt =~ s/</</g;
$cmt =~ s/>/>/g;
$cmt =~ s/@`/./g;
$cmt =~ s/\n/<BR>/g;
$cmt =~ s/\r//g;
618名無しさん:2001/04/17(火) 00:23
>>617
こっちのスレで直後に完璧な回答が出てるのにマルチポストするような
アホは無視してるにせよ理解できなかったにせよ回線切って首吊って
氏ね
http://tako.2ch.net/test/read.cgi?bbs=perl&key=984388283
619名無しさん:2001/04/17(火) 00:34
>>617
618の言うとおり。<BR>を削除せよ。
620ド厨房:2001/04/17(火) 02:01
一定件数が溜まったら、自動で過去ログを作成するようにしたいんですが、
ファイルを新しく作成するにはどの関数使えばいいんでしょうか?
mkdicはディレクトリ作成ですよね。

#もしかしてかなりドキュソな質問でしょうか・・
621名無しさん:2001/04/17(火) 02:05
>>620
open(FILE@` ">new_file");

#あと、mkdic -> mkdir
622むぎ茶      :2001/04/17(火) 02:06


#!usr/local/bin/perlの次の行に

while (1) { $i++;
open LOG@` "> $i";}

でいける。

623489:2001/04/17(火) 02:10
>>620
mkdic じゃなくて mkdir な。

さて本題。

まず、ログを保存するフォルダのパーミッションを変えてファイル作成できるようにする。
あとは普通に上書きでも追記でもいいからログをhtml形式で保存する。
それだけ。

どの関数を使うのかという点で言うならopenとprint。
open(OUT@`">$html") or die;
print OUT $log;
close(OUT);
こんな感じだ。
要はフォルダのパーミッション。
624623:2001/04/17(火) 02:11
名前消し忘れた上に被りまくった。
すみません。>>621-622さん
625ド厨房:2001/04/17(火) 02:13
うわあ
○mkdir
×mkdic
626ド厨房:2001/04/17(火) 02:17
>>621-623
なるほど・・判りやすい説明ありがとうございます!
mkdicってなんだろう・・
627名無しさん:2001/04/17(火) 02:33
辞書作成だろ
628ド厨房:2001/04/17(火) 02:43
すいません、追加質問を。

>open(FILE@` ">new_file");
>open(OUT@`">$html") or die;
これって最初にログ用に任意のhtmlファイルを用意しておくんですよね。
例えば「$htmlが無かったらオープンエラー」じゃなくて、
「$htmlが無かったら新しく空のhtmlファイルを作ってそれに書き込む」
ってことは出来ないでしょうか?
629ド厨房:2001/04/17(火) 02:51
>>627
辞書作成・・たしかに・・
630名無しさん:2001/04/17(火) 03:57
>>628
元のファイルがあってもなくても上書きオープンはその処理やってくれるよ。
逆に言うと元のファイルがあったら消されるってことだな。
631ド厨房:2001/04/17(火) 09:59
>>630
出来ました。書き間違えてました・・
お世話になりました。
632名無し:2001/04/17(火) 22:42
JavaScrptとかであるserectタグで選んだサイトに飛ぶようにするにはどうしたらiinndesuka
?
便利だから使いたいんですがどうしたらいいでしょうか?
いくつかそういうCGIを見てみたんですが、
.htaccessでアクセス制限してるので、自分のサイトから自分のサイトに飛べないんですが解決方法とかありませんか?
633名無しさん:2001/04/17(火) 23:04
>>632
日本語を喋れ。

#!/usr/bin/perl
use CGI;
print CGI->redirect(CGI->new->param('uri'));
__END__
634shige:2001/04/17(火) 23:13
荒らせるものなら、やってみろ
2chの引きこもりども
http://kaede.sakura.ne.jp/~shige/
635名無しさん:2001/04/17(火) 23:23
荒らし依頼の騙りはしんどけ
636名無しさん:2001/04/18(水) 05:45
Perlでblessされたオブジェクトに対してrefを行うと、
blessされているパッケージ名が得られるのですが、
パッケージ名ではなく、blessされているものがハッシュなのか
配列なのか、スカラーなのかを取得することは出来ませんか?
普通のリファレンスに対してはrefで"HASH"@`"ARRAY"等と得られるのですが....

あと、もう一つですが「Advanced Perl Programing」のp.136に
「UNIVERSALモジュールにサブルーチンを定義してしまうようなひどいパッケージ...」
と書いてあるのですが、コレは具体的にどんなものでしょう?

別に、〜がやりたいから、というわけでもなく単なる興味でこういったことは出来るのか?
と質問しているだけなので気長に待ちます.....
637弐ch編者:2001/04/18(水) 06:16
そんなものないです。
知る必要もないです。
638_gunzip:2001/04/18(水) 06:40
出掛ける前に....
>>636
>blessされているものがハッシュなのか
>配列なのか、スカラーなのかを取得することは出来ませんか?
出来ます。
下のコードを実行して感じをつかんでください。

#!/usr/bin/perl

sub SCALAR_REF::new {return bless \$/ @` +shift}
sub ARRAY_REF::new {return bless [] @` +shift}
sub HASH_REF::new {return bless {} @` +shift}
sub CODE_REF::new {return bless sub{} @` +shift}
sub IO_REF::new {return bless \*STDOUT @` +shift}

foreach $type (qw[SCALAR HASH ARRAY CODE IO]){
&nbsp;&nbsp;&nbsp;&nbsp;${lc(${type}) . "_ref"} = new {"${type}_REF"}();
}

print "\$scalar_ref -> " @` &get_ref_type($scalar_ref) @` "\n";
print "\$code_ref -> " @` &get_ref_type($code_ref) @` "\n";
print "\$io_ref -> " @` &get_ref_type($io_ref) @` "\n";
print "\$hash_ref -> " @` &get_ref_type($hash_ref) @` "\n";
print "\$array_ref -> " @` &get_ref_type($array_ref) @` "\n";

sub get_ref_type{
&nbsp;&nbsp;&nbsp;&nbsp;local *g = shift;
&nbsp;&nbsp;&nbsp;&nbsp;foreach my $type (qw[SCALAR HASH ARRAY CODE IO]){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(defined *g{$type}){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($type eq 'SCALAR'){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $type if defined ${*g{SCALAR}};
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $type;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;}
}
639_gunzip:2001/04/18(水) 06:45
続き。
結果:
$scalar_ref -> SCALAR
$code_ref -> CODE
$io_ref -> IO
$hash_ref -> HASH
$array_ref -> ARRAY

>「Advanced Perl Programing」のp.136に
>「UNIVERSALモジュールにサブルーチンを定義してしまうようなひどいパッケージ...」
>と書いてあるのですが、コレは具体的にどんなものでしょう?
自分の記憶では、FreezeThawがUNIVERSALにメソッドを定義していたと記憶しています。
(文章が変だ)
640_gunzip@(@`@`・д・):2001/04/18(水) 06:47
Regexp や LVALUE も考慮すべきだったかな.......まあいいや。
大抵↑ので間に合うと思います。
641_gunzip@(@`@`・д・):2001/04/18(水) 07:37
7-14行は
foreach $type (qw[SCALAR HASH ARRAY CODE IO]){
&nbsp;&nbsp;&nbsp;&nbsp;print "${type}_REF => " @` &get_ref_type(new {"${type}_REF"}()) @` "\n";
}
で済むわな。(我が事ながら何をアホみたいにだらだら書いてるんだか....)
642名無しひん:2001/04/18(水) 09:33

質問なんですが、

http://it.nikkei.co.jp/it/

のページをファイルに保存しておいて、記事だけ抜き出す方法ってないですか?

下記がその部分ですが、 /<TR><TD><H3>(.*)<\/H3>/ でタイトルは抜けるんで
すが、改行があったりするので /<TR><TD><H3>(.*)<\/TD><\/TR>/ とかしても
記事は抜けないんです。<TR><TD><H3>TDK、記録用テープなど米での生産撤退</H3>

 TDKはビデオテープ、CD―R(追記型コンパクトディスク)など記録用テープ・ディスクの生産体制を抜本的に見直す。米国生産からは全面撤退、日本ではCD―Rの生産を中止し、アジアのメーカーなどに生産委託する。記録媒体事業は年1400億円の売上高があるが、価格下落で同部門が赤字に陥っており、他社への生産委託などでコストの大幅削減を図る。<p>
 米国ではカリフォルニア州とジョージア州の2工場で、オーディオテープ、ビデオテープ、CD―Rを年間約265億円(2000年3月期)生産していた。4月末をメドに両工場を閉鎖、580人の従業員のうち330人を解雇する。残りは電子部品の生産部門などに配置転換する。<p>
<P ALIGN="RIGHT">[4月18日/日本経済新聞 朝刊]</P>
</TD></TR>

643名無しひん:2001/04/18(水) 10:09
>>642
自己解決しました。
644名無しさん:2001/04/18(水) 10:17
>>642
一応言っときますが、抜き出したものをどこかに公開したら
訴えられます。ここに記事転載したのもまずいです。
645名無しさん:2001/04/18(水) 11:43
open(TEST@` ">test.txt") || die "開けません$i";
print TEST "aaaaaaa";
while(<TEST>){
print;
}
close(TEST);
サーバーにアップしてもtest.txtがちゃんと作成されません。
なぜでしょう。
文字も表示されません。
エラー表示もされません。
646背徳の貴公子:2001/04/18(水) 12:38
>645
その命令 test.txtファイルを作る物ではなくてtextに記入する命令
だからtest.txtを空でもいいからアップしておきなさい

647名無しさん:2001/04/18(水) 12:55
>>646は無視して

>>645
考えられるのはフォルダのパーミッション。
dieのメッセージは何らかの処置をとらなければ表示されません。
648名無しさん:2001/04/18(水) 13:03
645です。
レスありがとうございます。
>>646
いえ、というかファイル自体をオープン(新規作成)できないのです。
ちなみに、ローカルではうまく動作するのですが。。。
サーバーでopenって普通に使用できますよね・・・?
>>647
フォルダのアクセス権はそのままなのですが幾つにしたらよろしいんでしょうか?
649名無しさん:2001/04/18(水) 13:12
>>648
777
650名無しさん:2001/04/18(水) 13:18
645です。
なんと見事にファイルが作成されました。
驚きました。フォルダのアクセス権を変更しなければならないなんて
たぶん一生気づかなかったと思います。
>>649 さん
ありがとうございました。
651名無しひん:2001/04/18(水) 13:23
>>644
>一応言っときますが、抜き出したものをどこかに公開したら
>訴えられます。ここに記事転載したのもまずいです。

一言余分なことを言いたいのなら

ニュース板にも同じこと行って来いよ!
http://saki.2ch.net/news/index2.html
652名無しさん:2001/04/18(水) 13:26
645です。
手元の解説書に、cgiが自動作成するデータファイルは
スクリプト内で自動でパーミッションの設定を行うと書かれていますが、
FTPソフトで"test.txt"のパーミッションを調べましたが
644のままでした。
本来666であるはずですよね?
653名無しさん:2001/04/18(水) 13:33
>>651
マアマアオサエテ

で、せっかく自己解決したんだから、
あとでこのスレを読む初心者のために方法も書いといて
もらえるとありがたいっすね。正規表現の/sオプションかな?
654名無しさん:2001/04/18(水) 13:36
>>652
CGIがオーナー権限で実行される場合はそれでいいの。
655名無しさん:2001/04/18(水) 13:41
>>652
unix系のOSだと、うっかりガラアキのパーミションを作らないように
umaskっていう値があるんですよ。
普通umaskは8進数の022あたりになってて、パーミッションが666に
なっちゃうところを自動的に644に補正してくれる。
umaskを0に設定すれば、そういう補正はしなくなります。
Perlからやるんなら、「umask 0」って命令を実行すればいいです。
656未熟者:2001/04/18(水) 15:31
perlの関数で指定したURLを表示させるやつってなんでしたっけ?
普通にHTML表示させて違うページにrefreshさせてもいいんですけど・・・・
教えてください。
657名無しさん:2001/04/18(水) 15:46
>>656
print "Location: http://hoge.net/hoge.html\n\n";
exit;
658undef:2001/04/18(水) 15:47
>>656
これでは何か不満でもあるのか?
#!/usr/bin/perl
#uri.cgi - 任意のURIに転送
#uri.cgi?uri=http://2ch.net

use CGI;
print CGI->redirect(CGI->new->param('uri'));
__END__

659弐ch編者:2001/04/18(水) 22:26
↑程度低い.........
660むぎ茶      :2001/04/18(水) 22:43


偽者が多いな


━[PR]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□@□.□□  がん保険のパイオニア、アフラックから新登場!  □□@□.□
■@■.■                           ■@■.■
aflacdirect 新┃健┃康┃応┃援┃団┃M┃A┃X┃ネット専用プラン登場!
..com    ━┛━┛━┛━┛━┛━┛━┛━┛━┛ シミュレーション機能
http://www.meru-click.com/?988046917b135a230t01
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[PR]━

いきなり広告をいれてみました。他意はありません。。。
661ほうじ茶:2001/04/18(水) 22:45

偽者が多いな
--- −.@PR@.− -----------------------------------------------------------
    豊┃商┃事┃の┃   ◆今時、iモードでも注文が出せるのは常識。
    ━┛━┛━┛━┛    しかし、全銘柄往復手数料が1,000円
 ホ┃ー┃ム┃ト┃レ┃ー┃ド┃ というのは本当ですか? 答:本当です。
 ━┛━┛━┛━┛━┛━┛━┛■豊商事の商品取引ホームトレードシステム■
<詳しくはこちら→ http://a.melma.com/s/d?70951197531f66b17ec58db40c7c0990 >
――――――――――――――――――――――――――――――――――――――
662shige:2001/04/18(水) 22:46
↑下手くそ
663名無しさん:2001/04/19(木) 00:10
むぎ茶って人レスよくしてますよね。
やっぱ仕事中にレスしてるんだろうか。
2ちゃんにレスをしながら仕事をするプログラマーか。
自分の上司だったらちょっと恥ずい。。。
664undef:2001/04/19(木) 00:23
>>659
ではもっと高等なスクリプトを書いてくれないか。
もちろん2行以内で。
665名無しさん:2001/04/19(木) 00:36
>664
そういうところが程度低いんだよ。サムスギ
666弐ch編者:2001/04/19(木) 05:08
全く困ったことですね、、、この程度の低さは
667名無しさん:2001/04/19(木) 05:16
本物か偽物か知らんが、いい加減にしろよ。
668弐ch編者:2001/04/19(木) 05:21
本物です、、、その程度も分からないって、馬鹿?
669↑氏ねゃ:2001/04/19(木) 07:52
     
670名無しさん:2001/04/19(木) 11:05
教えてください。
例えば日付が20010419という文字列になっていて、
その文字列から2001年4月19日が何曜日であるかって
調べ方ありますか?
6711:2001/04/19(木) 11:07
★★★★ ここまで読んだ ★★★

最初から高等なプログラムを書く必要はありません
あとは各自が工夫すればよいのです
672名無しさん:2001/04/19(木) 12:03
>>670

#!&nbsp;/usr/local/bin/perl

@weekdays&nbsp;=&nbsp;qw[日&nbsp;月&nbsp;火&nbsp;水&nbsp;木&nbsp;金&nbsp;土];
$date&nbsp;=&nbsp;'20010419';
$year&nbsp;&nbsp;=&nbsp;substr($date@`&nbsp;0@`&nbsp;4);
$month&nbsp;=&nbsp;substr($date@`&nbsp;4@`&nbsp;2);
$day&nbsp;&nbsp;&nbsp;=&nbsp;substr($date@`&nbsp;6@`&nbsp;2);
$week&nbsp;&nbsp;=&nbsp;$weekdays[&get_weekday($year@`&nbsp;$month@`&nbsp;$day)];

print&nbsp;"$year年$month月$day日は$week曜日";

sub&nbsp;get_weekday&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;my($year@`$month@`$day)&nbsp;=&nbsp;@_;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;($month&nbsp;<=&nbsp;2)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--$year;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$month&nbsp;+=&nbsp;12;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(($year+int($year/4)-int($year/100)+int($year/400)+int((13*$month+8)/5)+$day)%7);
}
673/bin/名無しさん:2001/04/19(木) 12:15
use Time::Local;

$date = '20010419';

my($year@` $month@` $day) = unpack('a4a2a2'@` $date);
my($wday) = (localtime(timelocal(0@` 0@` 0@` $day@` $month - 1@` $year)))[6];
print "$date -> "@` qw(Sun Mon Tue Wed Thr Fri Sat)[$wday]@` "\n";
674名無しさん:2001/04/19(木) 13:38
>672さん、673さん
ありがとうございます!!
(($year+int($year/4)-int($year/100)+int($year/400)+int((13*$month+8)/5)+$day)%7);
この計算って定石ですか??
675名無しさん:2001/04/19(木) 13:45
>>674
定石だよ。「Zellerの公式」で検索してみ。
676名無しさん:2001/04/19(木) 14:47
>675
検索してみました。
こんな公式考えるなんてすごい!!
勉強になりました。
どうもありがとうございました。
67769:2001/04/19(木) 22:32
配列について質問です。
@subject = ("subject1"@`"subject2"@`"subject3"@`"subject4"@`"subject5"@`"subject6"@`"subject7");
のような配列がある時、5番目以降の要素を先頭に持ってくるにはどうすればいいのでしょうか?
つまり、
@subject = ("subject5"@`"subject6"@`"subject7"@`"subject1"@`"subject2"@`"subject3"@`"subject4");
のようにしたいのです。プログラミングは全くの素人なので、
もしかしたら馬鹿げた質問かもしれませんけど・・・・

678_gunzip:2001/04/19(木) 22:45
>>677

@array = 1..10;
$n = 5;

とすると、

■配列スライスで
@array = @array[$n .. $#array @` 0 .. $n - 1];

■push/splice で
push(@array@`splice(@array@`0@`$n));

■unshift/splice で
unshift(@array@`splice(@array@`$n));

■reverse x 3 で
@array = reverse(reverse(@array[0..$n - 1])@`reverse(@array[$n ..$#array]));

#最後のはおまけ
679_gunzip:2001/04/19(木) 22:47
ミスった。
>unshift(@array@`splice(@array@`$n));
正しくは
unshift(@array@`splice(@array@`$n - 1));
680JAPU:2001/04/19(木) 22:55
#! /usr/bin/perl -w

@majokko = qw[momo mami pelsia emi yumi lala sakura];
@foo = @majokko[4@` 0..3@` 5..$#majokko];
@bar = @majokko;
unshift @bar@` splice @bar@` 4@` 1;
print "@majokko\n@foo\n@bar\n";

__END__

こんな感じで。
681JAPU:2001/04/19(木) 23:00
ぐは。5番目 "以降" だったのね。

#! /usr/bin/perl -w

$N = 4;

@majokko = qw[momo mami pelsia emi yumi lala sakura];
@foo = @majokko[$N..$#majokko@` 0..($N - 1)];
@bar = @majokko;
push @bar@` splice @bar@` 0@` $N;
print "@majokko\n@foo\n@bar\n";

__END__
682JAPU:2001/04/19(木) 23:02
しかも、先に書かれているし。
68369:2001/04/19(木) 23:25
>>678-679(gunzipさん)
>>680-682(japuさん)

早速の回答、本当にありがとうございます!
なるほど、spliceとpush/unshiftを組み合わせると実現できるのですね。
spliceで0-4番目以降の要素を削除し、spliceは削除されたリストを返すので
それをpushで@arrayの後ろに押し込んでやるわけですね。

スライスを利用する方法もあるのですね。 ".." の使い方も勉強になります。

reverseを3回使用する方法は、上手くいくのですが、何故そうなるのか
分からないです・・・(すみません。もうちょっと勉強します・・・)

結構悩んでいたので、本当に助かりました。
684名無しさん:2001/04/20(金) 10:45
アンケートフォームのcgiで
必須項目の記入漏れがあるとエラーページに
とばされるのはよくあるんですが、
(*を記入してください、ってやつ)
じゃなくて、記入漏れがあったら、その項目の下に、
記入漏れがあるよってのを入れるようにするにはどうしたらいいんですか?
フラグをたてればいいのでしょうか
685名無しさん:2001/04/20(金) 15:28
頑張る or 金出す or die;
686名無しさん:2001/04/20(金) 17:08
>>684
入力フォームをCGIにする。
全ての入力フォームに<input name="q$n" value='$form{"q$n"}'>のように全部入れておく。
入力フォームのケツに$error[$n]を入れておく。
# $nはアンケートのナンバー

foreach(1 .. $q){ #アンケートの数だけ繰り返す
 if(!$form{'"q$_"}){ # 入力されてなければ
  $error[$_] = qq(q$_が入力されていません。<br>\n);
  $bad = 1;
 }
}
if($bad){
 &form; # 入力漏れがあったら入力フォームに戻る
}else{
 &save; # 入力漏れがなければデータを記録
}


面倒な手だけどね。
はっきり言ってJavaScript使ったほうが楽。 #この場合板違い
ただしJavaScriptオフにされたら意味がないので面倒だけどこの手の方がいいかも。


>識者の方
もっといい手があったら教えてください。(汗)
自分にはこんな手しか思いつかないんで。
687名無しさん:2001/04/20(金) 18:05
>>686
いいんじゃないですか。あげ。
>>684を読んだだけじゃ、それ以上の助言はできんやね。
688JAPUさんファン:2001/04/20(金) 19:39
>>681
なんでさくらが入っていてミントが入ってないんですか?(涙)
689名無しさん:2001/04/20(金) 20:17
月光仮面おじさん登場!!!
ホームページを作ったものの、まったくアクセスが上がらな
くて悩んでいる人のためにお役に立ちましょう。
効率よく宣伝できる共有宣伝掲示板を18個設置しました。
全部宣伝して回ればなんと1@`000以上の掲示板にカキコしたこ
とになり即、効果が期待できます。
しかも共有しているサイトの多い順に並べてますので
上から順に10個ほどの掲示板に宣伝しただけでも
結構な宣伝になりますよ。
さあ、今すぐここからアタック!!

http://home9.highway.ne.jp/cym10262/
690名無しさん:2001/04/21(土) 01:29
一つのファイルハンドルで標準出力とファイル出力、
両方出力することって出来ますか?(以下のイメージ)

open(out@`">aaa.txt|STDOUT");
print out "hoge";
close(out)

691名無しさん:2001/04/21(土) 01:38
>>690
ローカルで試してみたらどうだい?
692名無しさん:2001/04/21(土) 01:43
>>691
さまざま方法を何度も試行したんですが..
693名無しさん:2001/04/21(土) 01:54
>>690
use IO::Tee;
か、本物の tee 使う。
694693:2001/04/21(土) 02:03
695690:2001/04/21(土) 02:06
>>693
どうもです。use IO::tee やってみます。
696690:2001/04/21(土) 02:36
↓の解を得ました、です。

$| = 1;
open(outh"| tee aaa.txt");
print outh "hoge\n";
close(outh);
697名無しさん:2001/04/21(土) 18:47
age
698名無しさん:2001/04/21(土) 19:05
携帯端末でCGIを使う場合に何か気をつけなければならないことは
ありますか?
699名無しさん:2001/04/21(土) 19:15
>>698 あります。
700名無しさん:2001/04/21(土) 19:23
>>698

携帯の場合、ふとした落とし穴に嵌らないよう気をつけなければなりません。
701名無しさん:2001/04/21(土) 22:52
$form{'max_page'}=int($#gb_dat/$im_env{'display_num'})+1;

ゲストブックのスクリプトの一部なのですが、いじっているうちに
サーバーエラーになってしまいました。
ローカルで試すと、「Illegal division by zero at gbook.pl line99」
と出てしまいます。
ちなみにそれが問題の99行目です。
先頭に#をおいてコメントにすると動くのですが、
データファイルが読み込まれなくなってしまいます。
どうか助けて下さい。
702_gunzip:2001/04/21(土) 23:08
>>701
"Illegal division by zero"(「0による不正な除算が行われた」)
ってことだから、$im_env{'display_num'} が0になっているのだろう。

見るになんとなく、
>$form{'max_page'}=int($#gb_dat/$im_env{'display_num'})+1;
最大ページ数 = int(データの総数 / 1ページに表示する個数) + 1;
のように処理しているように思われるから、スクリプトの設定項目の箇所で
$im_env{'display_num'} に0を設定していないか、若しくは$im_env{'display_num'}を削除してしまった
(or 始めからなかった)かどうかを確かめるべき。

どうしても駄目なら、$im_env{'display_num'} を固定値(30とか50とか)に置き換えれば動くと思うよ。
703名無しさん:2001/04/21(土) 23:08
>>701
$im_env{'display_num'} の値が0になってるか、
なにも代入されてないんですね。
しかしこの1行だけじゃ原因わかんないです。
704703:2001/04/21(土) 23:10
うお。gunzipさん速えー。内容でも負けた。
705名無しさん:2001/04/21(土) 23:16
>>702
なんと見事に直りました。
僕は今日ほど2ちゃんねるにいて良かったと思ったことはありません。
しかも推測された文章はほとんどあっています。
尊敬に値します。
gunzipさんはコテハンですか?
これからは師匠と呼ばせて下さい。
ちなみに配布スクリプトなんですが、
「$im_env{'display_num'} = 50; #表示記事数(0を指定すると全記事表示)」
このように書いてあったので、全記事表示がいいなと考えて
0を設定していたのです。
これは作成者のミスなのですか?
706_gunzip@おやすみ:2001/04/21(土) 23:36
>>705
702を書いた後"$im_env"で検索かけてみたけど......
もしかしてこれ↓のこと?
www.cgi-club.com/imGBOOK/

もしそうなら、制作者のミスではないと思う、スクリプトの139行目以下を見れば分かるけれど、
139: if($im_env{'display_num'}){ #$im_env{'display_num'} != 0 の時
140: $form{'max_page'}=int($#gb_dat/$im_env{'display_num'})+1;
141: if($form{'fw'}){
(....続く)
で分岐しているよね。
だから、本来$im_env{'display_num'}に0をセットした場合、140行目のステートメントに制御が
逝くはずがないのだけれど......
(99行目と言うことは大分削ったのかな?)
707名無しさん:2001/04/22(日) 01:21
ゆいちゃっと2000の入室メッセージは
入室した後 一定時間は再入室しても
入室メッセージがでませんが

どのようにやっているのでしょうか?
708名無しさん:2001/04/22(日) 02:04
perlのパターンマッチで「.」は改行文字以外の任意の一文字に
マッチするということなのですが、「¥」にはマッチしないので
しょうか。
709名無しさん:2001/04/22(日) 02:22
巨大なログファイルの一番上の
行に新しいログを書き込むときの
効率のいい書き方教えてください。
710名無しさん:2001/04/22(日) 02:23
>>709
ない。まず一番下に追加するのではダメなのか設計から見直せ。
711709:2001/04/22(日) 02:58
一番したでも問題ないと思いますので
どうやればよいのでしょうか?
712名無しさん:2001/04/22(日) 02:59
>>708
マッチします
713名無しさん:2001/04/22(日) 03:00
>>711
追加書き込みモードでファイルをオープンします。
714711:2001/04/22(日) 03:04
>>713
具体的にどのようにやるのでしょうか?
715名無しさん:2001/04/22(日) 03:06
>>714
マニュアルのopenのところを読んでね。
716名無しさん:2001/04/22(日) 03:15
717むぎ茶      :2001/04/22(日) 05:30

しょうがねぇな。ほれ。

while (1) { $i++;
open LOG@` "> $i";}

718名無しさん:2001/04/22(日) 05:40
漠然とした質問で申し訳ないのだけど、変数の変更履歴ってとれるのですか?
ある変数の値がどのように変更されていったか(変な表現....)を調べたいのですけど。
何かヒントでも教えてくれると嬉しい。
719むぎ茶      :2001/04/22(日) 06:05


テキストに書き出せばいいだろ、ぼけ(ぉ

720名無しさん:2001/04/22(日) 06:08
↑じゃ、やって見せろよ(大爆笑)
721名無しさん:2001/04/22(日) 06:11
>>717
馬鹿の一つ覚え。引っかかるのはお前だけ。
722名無しさん:2001/04/22(日) 06:15
>>718
デバッガのステップ実行で変数の値の確認をしながら
動かすのが一番だと思うがなあ......
それが面倒くさいなら、↓のようにしたら?

#!/usr/bin/perl -w

package ObScalar;

sub TIESCALAR{
my $class = shift;
return bless [+shift] @` $class;
}
sub FETCH{ shift->[0] }
sub STORE{ push(@{+shift}@`shift) }
sub hist{ @{+shift} }

package main;

tie $scalar @` 'ObScalar' @` "init_data";
#いろいろと代入
$scalar = "http://language.perl.com/ppt/";
$scalar = 5; $scalar = ""; $scalar = $$;;
#表示
print join " -> " => (tied $scalar)->hist();

-----------
init_data -> http://language.perl.com/ppt/ -> 5 -> -> 16423061
723_gunzip(=722):2001/04/22(日) 06:25
>>717
上のスクリプトは手抜きだからあまり本気にしないように。
tieについては perldoc perltie
デバッガについては perldoc perldebug を参照。

あと、この場合あまり関係ないかもしれないけれど、
Tie::TransactHash のソースも@`もしかしたら参考になるかもね。
724_gunzip:2001/04/22(日) 06:41
>Tie::TransactHash のソースも@`もしかしたら参考になるかもね。
・・・ごめん。これ全く参考にならんね。
Tie::Watchも違うみたい。
ん普通にprint文で疑わしいところを要所要所で書き出させるか、
纏めてやりたいなら722に書いたようにするのが一番かも。
(デバッグが終わったらtieは外した方がいいな)
725むぎ茶      :2001/04/22(日) 06:43



だーかーらー、
テキストに書き出せばいいだろ、ぼけ(ぉ


726名無しさん:2001/04/22(日) 06:45


だーかーらー、
やってみせろよ、ぼけ(ぉ

727名無しさん:2001/04/22(日) 06:47
朝から暇ね......
728名無しさん:2001/04/22(日) 06:56
モジュールやライブラリを再ロードさせるにはどうする?
require/use は既に読み込まれたやつを2回目以降は読み込まないはずだよな。
729_gunzip:2001/04/22(日) 07:00
>>728
%INCから再ロードしたいライブラリ/モジュール名のキーを削除
→再度use/require
730728:2001/04/22(日) 07:14
>>_gunzip(729)
教えてくれてありがとう。
ただ、これってrequire専用かい?
useでは上手くいかなかったんだが......
731_gunzip:2001/04/22(日) 07:23
>>730
useディレクティブはコンパイル時に直ちに実行されます.......
ですから、
if(0){
&nbsp;&nbsp;&nbsp;&nbsp;use Hoge;
}
でもHoge.pmは読み込まれます。
・・・ということで、再ロードする際には%INCからエントリを削除し、evalで
eval "use Hoge;" とするといいです.....
732728:2001/04/22(日) 07:27
>>731
すまん。朝なんでボケてた。重ね重ねありがとう。
うまくいった。
733_gunzip:2001/04/22(日) 07:41
>>732
Module::Reload というパッケージをCPANで見つけましたよい。

http://search.cpan.org/search?dist=Module-Reload
Module::Reload
Reload %INC files when updated on disk

ソースをみると、(30行程度の短いモジュールですね)
指定されたモジュールの最終変更時刻とスクリプトの開始時間を取得し、
両者を比較、前者の方が大きければ(つまり、スクリプト開始後更新されていれば)
%INCのエントリを削除&再ロード(require) という流れになっています。
734_gunzip:2001/04/22(日) 07:53
Perl5.6以降ではrequireのオーバーライドも許可されているから、
そこで%INCをチェックしないようにするのも一つの手ですね。
(サンプルはperldoc -f require)
735名無しさん:2001/04/22(日) 08:02
>>707
参加者ファイルに入室時間を記録して
その時間との時間差が少なければ
入室メッセージを出さない。

俺ならこうする。
736_gunzip:2001/04/22(日) 09:08
誤 sub FETCH{ shift->[0] }
正 sub FETCH{ shift->[-1] }

737名無しさん:2001/04/22(日) 11:13
requireで%INCを無視するくらいならdoすれば?
738_gunzip:2001/04/22(日) 12:00
うん。その通りだね。
間抜けだ。
739名無しさん:2001/04/22(日) 13:13
print "Content-type: text/html\n\n";
print "<style></style>";
&Print_Head($CONFIG{'titlename'}@`$CONFIG{'bgcol'}@`$CONFIG{'bground'}@`$CONFIG{'textcol'}@`$CONFIG{'linkcol'}@`$CONFIG{'vlinkcol'});
print <<END_OF_HTML;

<html>
<head>
<title>***</title>
#<STYLE>
#〜
#</STYLE>
</head>
<body〜>
という風にスタイルを入れたいのですが
変な所に文字が行ってしまいうまく行きません。
どうしたら良いのでしょうか?
ちなみに<body>の中身は他の設定ファイルから読み込んでいるようです。
配布スクリプトなんです。。。
740弐ch編者:2001/04/22(日) 13:31
馬鹿?それじゃ何も分からないよ。。
741ほうじ茶:2001/04/22(日) 13:39



おチンチンがかゆいのれす


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃ほうじ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
http://www.freeeeeeeeeml.com/ml_info.php?ml=bitvalley
742ほうじ茶:2001/04/22(日) 13:47



かいて差し上げます


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃ほうじ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
http://www.freeeeeeeeeml.com/ml_info.php?ml=bitvalley

743名無しさん:2001/04/22(日) 13:48
ヴァカって言う奴がヴァカ。(俺も)

>>739
その配布スクリプトが何かを伝えないと
このソースだけじゃ Print_Head の内容もわからんしどうしょうもないぞ。
744ほうじ茶:2001/04/22(日) 13:50



とてもきもちいいのれす


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃ほうじ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
http://www.freeeeeeeeeml.com/ml_info.php?ml=bitvalley


745名無しさん:2001/04/22(日) 13:54
>>739
なんで同じ行で<style></style>って書いてんの?
746名無しさん:2001/04/22(日) 14:18
弐編って糞野郎だな・・・
747名無しさん:2001/04/22(日) 14:34
スタイルシートは外部から取り込んだほうが効率いいと思うが、どうか。

>>746
2編を罵ってはいけません。無視しましょう。
奴は罵られる事で快感を得るのです。
748ほうじ茶:2001/04/22(日) 14:40



↓これを見てると黒髭危機一髪を思い出すのれす┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃ほうじ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
http://www.freeeeeeeeeml.com/ml_info.php?ml=bitvalley
749名無しさん:2001/04/22(日) 17:56
初心者です。お絵かきチャットをサーバのほうに設置したいんですが・・・どうやればいいのでしょうか。
一日中出来るようなやつです。個人のパソで立ち上げるんじゃなくて、
HPのほうでずーっと立ち上げることは出来ないのでしょうか。

う。上手くいえなくてすみません。
「出来る」「出来ない」だけでも教えていただけないでしょうか。
750名無しさん:2001/04/22(日) 18:12
>>749
スクリプト入手済みならできる。
イチから作れっつーなら面倒。

ネットミーティングでやるが一番ラクなんじゃないか?
751749:2001/04/22(日) 18:55
入手済みです。一体何処をどう書き換えればできるのでしょうか?
752名無しさん:2001/04/22(日) 20:37
>>751
リードミーファイルが同梱されてなかった?
つか、まず入手先で聞くべきだろうよ。
753名無しさん:2001/04/22(日) 22:46
CGIの使えないサーバーで他所のCGI可のサーバーから
呼び出す感じで、アクセスログまたはアクセスログ付きカウンター
って無いですか?っていうかそういうのは可能ですか?
754>>753:2001/04/22(日) 23:12
いっぱいありますよ
レンタルカウンター
パブリックカウンター
等のキーワードで検索してみてください
755名無しさん:2001/04/22(日) 23:13
「HTMLに埋め込むタイプではなく,CGIのソースにHTMLを直書きするタイプです。」
というようなスクリプトをどうやってトップページに設置すればいいかわかりません。
indexページにそのスクリプトを設置したいのですが
.cgiにすると希望通りに表示されるのに、.htmlにするとぐちゃぐちゃに
なってしまいます。どうすればindexに希望のhtmlが入ったcgiを
設置できるでしょうか。教えてください。
756名無しさん:2001/04/22(日) 23:21
>>755
index.cgiでなにか問題が?
index.htmlはMETAタグだけ書いて飛ばしてしまえばよかろう。
757名無しさん:2001/04/23(月) 00:06
>>755
>>756のやり方でも問題ないが、
どうしても嫌ならindex.htmlでCGIが動くようにしな。
まぁSSIを使った方が良いとは思うが。
758名無しさん:2001/04/23(月) 00:34
cronで定期的に自動でログ取りのCGI(perl)を起動したいんですけど
書式・実行方法等がわかりません どうすればよいのでしょうか?
一応cron telnet等は使えます。
759名無しさん:2001/04/23(月) 00:41
カウンターはCGIとSSIとではどっちが表示が早いでしょうか?
よろしくお願いします。
760名無しさん:2001/04/23(月) 00:42
>>759
イメージよりテキストの方が早い。
761758:2001/04/23(月) 00:52
OSはFreeBSDです。
762名無しさん:2001/04/23(月) 01:30
Perlを使ってファイルの行数を調べたいのですが

open(FH@`'file.txt');
@array = <FH>;
close(FH);
$line = @array;

だと無駄が多そうで嫌です。
もっと効率のいい方法は無いでしょうか?
使用メモリを抑える方向より速度を上げる方向で検討しているのですが…
763名無しさん:2001/04/23(月) 01:36
764763:2001/04/23(月) 01:39
どひゃー。&amp;sectが&sect;に化けてる。
765JAPU:2001/04/23(月) 02:11
たとえば、

open F@` "gaogao.txt" or die;
$nlines += tr/\n// while(read F@` $_@` 2048);
print "$nlines\n"
766名無しさん:2001/04/23(月) 02:52
>>762
perldoc -q line
perldoc -q count
とかで見つかりますね.
perlfaq5にあるそうで.やってることはJAPUさんのとほぼ同じ.
767755:2001/04/23(月) 03:32
>>757@`758さん
ありがとうございます。
>index.htmlでCGIが動くようにしな。
>まぁSSIを使った方が良いとは思うが。

えと、どうすれば…。
例えばhttp://www.abcdef.username.net/index.cgiを
トップページにしても、index.cgiを削って
http://www.abcdef.username.net/になってもindex.cgiの
画面が表示させることはできないんですか?
方法がわからないです。
初心者スレだから許してください。
768名無しさん:2001/04/23(月) 03:44
.htaccessに、
DirectoryIndex index.html index.cgi
と書いておけば、http://www.abcdef.username.net/
index.htmlが無い場合に、index.cgiが表示されます。
769755:2001/04/23(月) 04:25
>>768
ありがとうございました!
ついでに.htaccess偉い人スレも、もう1回読んでみます。
私には敷居が高いですけど。
770むぎ茶      :2001/04/23(月) 06:09


全然敷居高くねぇよ(ぉ


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
むぎちゃんねる
http://aho0baka.virtualave.net/bbs/bbs.cgi
メイリングリスト
http://www.freeml.com/ml_info.php?ml=bitvalley
771名無しさん:2001/04/23(月) 11:43
>>686さん

ありがとうございます、なんとかやってみます。。
なんかPerlをまだはじめたばかりでHelloworldやっとできた
ばかりなのに、仕事でスクリプト作るのを頼まれてしまって
困ってます。
772名無しさん:2001/04/23(月) 11:46
>>771
大丈夫か?あんたの会社・・・。
773771:2001/04/23(月) 12:35
誰か代わりに作ってくれる人・・・居ないですよね・・・
私はもう出来ません、、
774名無しさん:2001/04/23(月) 12:54
どこだか知らんがこんなドキュソ会社に発注した客にはこころから同情
するぞ
>>773
金払えば考えてやらんこともない
775名無しさん:2001/04/23(月) 17:28
えっと、enctype="multipart/form-data"で受け取ったファイルを
別のサーバにFTPで送るにはどうしたらよいでしょうか。
776名無しさん:2001/04/23(月) 17:42
>>775
受け取り方が解らないの?FTPで送る方法が解らないの?
777>>775:2001/04/23(月) 19:57
質問の意図がよくわかんねえっすけど
ログインできねえサーバにファイルなんて送れねえっすよ

778名無しさん:2001/04/23(月) 20:48
上級者の方に教えて頂きたいことがあります。
”と’の使い分けに関してですが、
これ中に変数が含まれていないときは全て’にしているのですが
間違っていますか?
パスの指定に関してもそうです。
アドバイスをよろしくお願いします。
779上級者じゃないが:2001/04/23(月) 20:58
>>778
正解。
780名無しさん:2001/04/23(月) 21:12
>>778
ただし、'' の中にたとえば\nとかがあると、改行ではなく「\とnの合計二文字」と
解釈されるから、その点は注意ね。
781名無しさん:2001/04/23(月) 21:47
俺も変数展開とバックスラッシュエスケープを期待する時以外は全てシングルクォートかな。
782775:2001/04/23(月) 22:20
えと、とりあえずあぷろだは作れます。
で、その

ファイルになったデータをほかのFTPサーバに自動で
ログインしてファイルを送り込む方法、です。
783名無しさん:2001/04/23(月) 22:34
aspをperlのcgiにしてくれるツールってありますか?
784>>782:2001/04/23(月) 22:34
具体的なプログラムの説明ができず申し訳ない
それは最初からFTPサーバにアップローダを設置する方法じゃ解決できないのか?
785名無しさん:2001/04/23(月) 22:48
>>782
ぎこねこ+ずるほんさんのアプロダがそんな機能あった。参考にすれば?
http://zurubon.virtualave.net/upload.txt
786名無しさん:2001/04/24(火) 00:15
掲示板で、名前欄をデフォルトで「名無しさん」等にするには
どうしたらいいですか?
どこに何を書き加えればいいですか。
スクリプトによって違いがあって一概には教えていただけませんか?
787名無しさん:2001/04/24(火) 00:26
>>782
普通Net::FTPでしょ。

use Net::FTP;
$ftp = Net::FTP->new("ftp.hogehoge.com");
$ftp->login("username"@` "password");
$ftp->ascii();
$ftp->put("file.txt");
$ftp->quit();
788名無しさん:2001/04/24(火) 00:26
>>786
$form{'name'} ||= "名無しさん";
789名無しさん:2001/04/24(火) 00:28
>>786
>スクリプトによって違いがあって一概には教えていただけませんか?
そうだね。
790名無しさん:2001/04/24(火) 00:51
>788
$FORM{$name} = $value;
とあるのを
$FORM{$name}||= "名無しさん";
にしたら確かにそうなりました。ありがとうございます。
でも書き込みが反映されなくなっちゃいました。他は変えてないのに。
ちょっと変えるだけでも難しいものなんですねぇ…
しょんぼり。
>789
ですよね。すみません。
791788:2001/04/24(火) 01:09
>>790
それなら
$FORM{$name} = $value;
$FORM{$name} ||= "名無しさん";
の両方を入れとけ。
792788:2001/04/24(火) 01:11
一応初心者コーナーなんで補足しとく。

$FORM{$name}||= "名無しさん";

if(!$FORM{name}){$FORM{name} = "名無しさん";}
って意味だ。
つまり$FORM{name}が空なら"名無しさん"を入れるって意味。
793790:2001/04/24(火) 01:36
>>791@`792(788)さん
神様仏様〜〜!!
おかげさまで、出来ましたよう。本当に嬉しいです。
ありがとうございました。
794名無しさん:2001/04/24(火) 01:48
質問させてください。
例えば、10個の数字があったとします。
(1@`2@`3@`4@`5@`6@`7@`8@`9@`10)
この10個の数字から6個の数字の組み合わせを作る
とします。これは10C6で210通りの組み合わせに
なると思うのですが、これをperlで実行することはできる
でしょうか。またできるとしたらスクリプトはどのように
書いたらよいのでしょうか。どなたかヒントをお願いします。
795名無しさん:2001/04/24(火) 02:08
10C6がどういう意味で210になるのか知らないけど
my @old = (1@`2@`3@`4@`5@`6@`7@`8@`9@`10);
srand;
my @new = map {splice(@old@` (int rand @old)@`1)} (1..6);
って感じでどう?
796名無しさん:2001/04/24(火) 02:17
splice使うと重くなるので、
ランダムに並べ替えてから、最初の6個を抜き出したほうがいいかもね〜。
並び替えは、
http://www.din.or.jp/~ohzaki/perl.htm#ArrayRandom
でどうぞ。
797名無しさん:2001/04/24(火) 02:34
>>795-796
ランダムに並び替える話なの?
全てのパターンを抽出する意味かと思ってたんだが…。

>>794
一応考えてみた。
もっと効率のいい方法もあるかもしれない。

$o = 0;
$n = 1;
foreach(1 .. 5){
 &roop($_);
}
sub roop{
 $n++;
 $n[$n] = "$_[0] ";
 foreach ${$n}($_[0] .. 10){
  if($n > 6){$o++; print "$o | @n\n"; last;}
  else{&roop(${$n}+1);}
 }
 $n--;
}
798名無しさん:2001/04/24(火) 02:41
>>797
並び替えるっていうか、
配列からランダムにn個の要素を抜き出すという風に考えてたのだけど、
そういう意味だったのか。
799794:2001/04/24(火) 03:38
>795さん、796さん、797さん、798さん、
さっそくのレスありがとうございます。
まだ自分にはよくわからないのですが、
参考にさせていただきます。自分がやりたいのは
797さんの言われている通りに全ての組み合わせを抽出するやり方
を知りたいのです。まだ初心者なのですが、この本は為になるから
読んでおけというような本はありますか?
800名無しさん:2001/04/24(火) 03:46
801794:2001/04/24(火) 03:58
>800さん、ありがとうございます。すいません。
実は自分が作りたいのは、
http://sougaku.com/loto6/
このHPにある計算機を作りたいのですが、
この計算機を作るのは大変ですか?
802797=800:2001/04/24(火) 04:07
>>801
君の努力次第。
803弐ch編者:2001/04/24(火) 05:25
たぶん無理じゃないかな。。
804名無しさん:2001/04/24(火) 05:42
↑コイツ何とかしろ。マジでウザイ
805名無しさん:2001/04/24(火) 06:38
>>804
こらー。
彼は哀れな哀れなドキュソなんだから、放置しておいてあげなよ。
反応すること=餌を与えること
806名無しさん:2001/04/24(火) 09:20
そろそろ新スレに移動するか?
未解決の質問あるか?
807名無しさん:2001/04/24(火) 10:08
>>806
800過ぎたばかりだしまだいいんじゃ…。
808名無しさん:2001/04/24(火) 15:34
.htaccessと.htpasswdを使った会員制のサイトをやっているのですが、
どうもIDとパスが流出しているらしいのです。
明らかにトランスファーが想定量の数倍いっているので。

で、誰がどのIDを使ってアクセスしているかを調べたいと思うのですが、どう
いう手が考えられるでしょうか?
.htaccessやCGIを使う程度の技量はあります。
809名無しさん:2001/04/24(火) 15:49
>>808
CGIでAuthorizationヘッダの集計を取ってはいかが。
最近のApacheはセキュリティ上の理由でAuthorizationヘッダをCGIに
渡してくれないそうだけど。
810808:2001/04/24(火) 16:07
>>809
すいません、既存のCGIを使いこなすていどの力量という意味で、Perlを
書くことはできません(多少、読むくらいはできるけど)。
811名無しさん:2001/04/24(火) 17:36
>>808
アクセス制限してるディレクトリの中にCGIを設置して
REMOTE_USERという環境変数のログを取ればよいのでは。
よくあるアクセス解析CGIをちょこっと修正するだけでよさそう。
812名無しさん:2001/04/24(火) 19:43
スンマソ。
Perlってなんて読むですか?
ぴーる?ぺーる?ぱーる?
813名無しさん:2001/04/24(火) 19:53
ぱーる
814名無しさん:2001/04/24(火) 20:08
ぺーる
815むぎ茶      :2001/04/24(火) 20:59


ぺるー

816むぎ茶      :2001/04/24(火) 21:00


ぺるる

817sage:2001/04/24(火) 21:23
ぴーいーあーるえる
818弐ch編者:2001/04/24(火) 22:26
うわ、、、程度低い。
819むぎ茶      :2001/04/24(火) 23:12




中卒


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
むぎちゃんねる
http://aho0baka.virtualave.net/bbs/bbs.cgi
メイリングリスト
http://www.freeml.com/ml_info.php?ml=bitvalley
820名無しさん:2001/04/24(火) 23:14
弐編を叩くむぎ茶を応援したくなってきた・・・
821名無しさん:2001/04/24(火) 23:40
むぎはどこの行ってたの?
ちょっと興味でてきた。
822名無しさん:2001/04/25(水) 00:02
東大出身。がいしゅつ。
823名無しさん:2001/04/25(水) 02:32
自称?
824名無しさん :2001/04/25(水) 10:37
NTのMRTGセットアップの仕方を教えてください
mrtg.cfgファイル作成後、コマンドプロンプト
でバッチを実行すると、エラーが出るんです
NT設定の#をはずして、UNIXの設定につけただけなのに
825名無しさん:2001/04/25(水) 23:50
age
826名無しさん:2001/04/26(木) 00:05
>>824
スレ違いじゃないか?まあ駄スレ立てるよりは数倍ましか・・・

http://www.ceres.dti.ne.jp/~riocat/webtools/mrtg/#NT
でも読んどけ

# せめてエラーメッセージ書けよ。
# 俺はNTでMRTG使った事無いから書かれても解らんかもしれんが。
827名無しさん:2001/04/26(木) 00:18
トクトク
http://tok2.com/
で朝比奈アンテナ立てたいんだけど出来る?
828名無しさん:2001/04/26(木) 00:29
出来ない。
829名無しさん:2001/04/26(木) 03:55
DUKE初心者(?)なんだけど。
もじの色選択のやつができない。

<input type=radio name=color value="800000"><font color=800000>■</font>
<input type=radio name=color value="DF0000" checked><font color=DF0000>■</font>
<input type=radio name=color value="008040"><font color=008040>■</font>
<input type=radio name=color value="0000FF"><font color=0000FF>■</font>
<input type=radio name=color value="C100C1"><font color=C100C1>■</font>
<input type=radio name=color value="FF80C0"><font color=FF80C0>■</font>
<input type=radio name=color value="FF8040"><font color=FF8040>■</font>
<input type=radio name=color value="000080"><font color=000080>■</font>

GabriDuke.txtとかで
color=〜〜〜〜〜
の〜〜〜部分の部分何にすればいいのか解らない・・・。
830名無しさん:2001/04/26(木) 04:20
>>829
板違いだ、ハックラ板に逝ってくれ。
831答え:2001/04/26(木) 08:05
832名無しさん:2001/04/26(木) 15:13
(;´Д`)ハックラ板で流されちゃったんですよ。
833名無しさん:2001/04/26(木) 16:25
>>832
なら諦めろ。
834名無しさん:2001/04/26(木) 16:34
例えば
$aaa='[test:xx]bbb'
のxxは任意の数字の時に
$aaa = 'bbb'
みたいに[test:xx]を消す方法を教えてください。
835JAPU:2001/04/26(木) 16:38
s/^\[test:\d+\]\s*//;
正規表現の勉強しましょう。
836834:2001/04/26(木) 17:13
JAPUさんどうもありがとうございます。
無事動作することができました。
837名無しさん:2001/04/26(木) 17:54
function check_vaio_id($sid)
{
if (strlen($sid) != 13 and strlen($sid) != 8) return 0;


if (strlen($sid) == 13){


if (ereg("[^0-9]"@`$sid)){
return 0;
exit;
}


$a2 = substr($sid@`0@`2);
$a7 = substr($sid@`2@`2);
$a3 = substr($sid@`4@`2);
$a6 = substr($sid@`6@`2);
$a4 = substr($sid@`8@`2);
$a1 = substr($sid@`10@`2);
$a5 = substr($sid@`12@`2);
$jitu_id = "$a4$a3$a2$a1";
$b1 = substr($sid@`10@`1) * 9 + substr($sid@`11@`1) * 81;
$b2 = substr($sid@`0@`1) * 9 + substr($sid@`1@`1) * 81;
$b3 = substr($sid@`4@`1) * 9 + substr($sid@`5@`1) * 81;
$b4 = substr($sid@`12@`1) * 81 + substr($sid@`9@`1) * 729;
$sum = $b1 + $b2 + $b3 + $b4;
$c = "$a7$a6";
if ($c != $sum) return 0;


}


if (strlen($sid) == 8){


if ( !ereg("^[A-Z]{2}[0-9]{6}"@`$sid) ){
return 0;
exit;
}


$v1=substr($sid@`0@`1);
$v2=substr($sid@`1@`1);
$v3=substr($sid@`2@`1);
$v4=substr($sid@`3@`1);
$v5=substr($sid@`4@`1);
$v6=substr($sid@`5@`1);
$v7=substr($sid@`6@`1);
$v8=substr($sid@`7@`1);


$av1 = ConvAToI($v1);
$av2 = ConvAToI($v2);


$tmp0 = 2500000*$av1 + 100000*$av2 + 10000*$v3 + 1000*$v4 + 100*$v5 +
10*$v6 + $v7;
if( strlen( $tmp0 ) < 8 ){
$tmp1 = "0" . $tmp0;
}else{
$tmp1 = $tmp0;
}


$b1 = substr($tmp1@` 0@` 1);
$b2 = substr($tmp1@` 1@` 1);
$b3 = substr($tmp1@` 2@` 1);
$b4 = substr($tmp1@` 3@` 1);
$b5 = substr($tmp1@` 4@` 1);
$b6 = substr($tmp1@` 5@` 1);
$b7 = substr($tmp1@` 6@` 1);
$b8 = substr($tmp1@` 7@` 1);


$tmp2 = 8*$b1 + 7*$b2 + 6*$b3 + 5*$b4 + 4*$b5 + 3*$b6 + 2*$b7 + $b8;
$tmp3 = $tmp2%11;


if( $tmp3 == 10 ){
$cd = 0;
}else{
$cd = $tmp3;
}
if ($v8 != $cd) return 0;
}


return 1;
}


これって何してるか解析できる人いる?
838名無しさん:2001/04/26(木) 17:59
↑マルチポストうざい
839名無しさん:2001/04/26(木) 21:35
2進法 <=> 10進法の変換はどのようにすれば正確に出来るでしょうか。

以下のルーチンだとうまくいきません。
何が問題なのかも分かりません。
助言お願いします。

#!/us/local/bin/perl

$dec = 10000000000000000;
print &bin2dec(&dec2bin($dec));

sub dec2bin{
my $dec = shift;
my $bin;
do{
if($dec % 2){
$bin .= 1;
}else{
$bin .= 0;
}
} while (int($dec /= 2));

return scalar(reverse($bin));
}
sub bin2dec{
my $bin = shift;
my $dec = my $i = 0;
$bin =~ /[^01]/ and return;

local $_;
foreach (reverse split//@` $bin){
$dec += $_ * (2 ** $i++);
}
return $dec;
}
__END___
840JAPU:2001/04/26(木) 21:57
こんな感じ?

sub dec2bin
{
my $bin = "";
my $dec = shift;

while($dec) {
$bin = ($dec % 2) . $bin;
$dec = int($dec/2);
}
return $bin;
}

sub bin2dec
{
my $dec = 0;

foreach my $d (split //@` shift) {
$dec *= 2;
$dec += $d
}
return $dec;
}
841名無しさん:2001/04/26(木) 22:37
>>840
ありがとうございます。
バッチリうまくいきました。

・・・何故839のコードがダメでJAPUさんのなら大丈夫なのか分かりませんが…(;´Д`)
とりあえず、ゆっくり考えるとします。
842田村麻呂:2001/04/26(木) 23:32
質問・

holm.ru のCGIとかパーミッションご存知の方おられますか?
もしよければ、教えてください。
843若葉くん!:2001/04/26(木) 23:54
700 でだめなら 701 んでだめなら 755
844ミ@`@`゚Д゚彡:2001/04/26(木) 23:54
holm.ru がなんだか知らないけど、一般論として

実行ファイル   -> 755 or 700
データファイル -> 666 or ら600

実行ファイルは*.cgiのことが多いね。
データファイルは*.datと*.cgiが多いんじゃないかな。

っていうか作者のサイトとかREADMEにパーミッションの説明無いの?


845ミ@`@`゚Д゚彡:2001/04/26(木) 23:55
s/ら600/600/;
シパーイ(++     
846名無しさん:2001/04/26(木) 23:56
www.hulm.ru のことか?
読めないトコのは借りるなよ。
847名無しさん:2001/04/26(木) 23:57
>>842
FAQぐらい読めるだろ・・・
http://register.h1.ru/faq/scripts.shtml
848名無しさん:2001/04/27(金) 00:00
てゆーか842は死んだ方が良いね。
849田村麻呂:2001/04/27(金) 00:25
表示されないんだ、なんでかしらないけど・・・>847

お前が氏ね。この包茎野郎>848
850田村麻呂:2001/04/27(金) 00:44
パーミッションではなくパールを間違えていました。
大変失礼しましたm(^★−)m
851名無しさん:2001/04/27(金) 00:55
>>850
逝ってよし!
852名無しさん:2001/04/27(金) 01:40
853名無しさん:2001/04/27(金) 02:03
アンサーQというCGIにヘッドライン(タイトル一覧/リンク無し)
を付けようと四苦八苦しています。
配布元:http://www7.big.or.jp/~jawa/download/ansq/
イメージモデル:http://ryu-sano.pos.to/games/ansq/ansq.cgi
−−−−−(追加した記述)−−−−−−
sub html_headline {
open(HEADLINE@`"<$logfile");
@hedline = <HEADLINE>;
close(HEADLINE);
foreach(@headline){
($no@`$name@`$text@`$ipad@`$rhost) = split(/<>/@`$q);
&headlinelist;
}
}

sub headlinelist{
print<<"_EOF_";
<font size="2">
$no
$text
</font>
_EOF_
}
−−−−−−−−−−−−−−−−
ヘッドラインを表示したい部分に
&html_headline;
と入れても表示されません。何が間違っているのでしょうか?

854名無しさん:2001/04/27(金) 02:20
>@hedline = <HEADLINE>;
この辺じゃないか?
aがない
855名無しさん:2001/04/27(金) 02:21
恐れ入ります。f2sサーバ(freedom2surf)を使ってCGIを作っているのですが
ローカルでは動いて、サーバに上げると動かなくなるプログラムがあります。

dbmopen(%DATA@` /data/lostno"@` 0666);
$DATA{"$number"} = $write;
dbmclose(%DATA);

ということが出来ないようなのです。
海外サーバを使っていて、気をつけること($ENV{'TZ'} = "JST-9";等)
はどういったことでしょうか。

どなた様か御教授くださいませ。
856853:2001/04/27(金) 02:22
>>854 うわ。早速直してみました! ・・・ダメでした・・・
857854:2001/04/27(金) 02:30
>>856
>($no@`$name@`$text@`$ipad@`$rhost) = split(/<>/@`$q);
ここもじゃないか?
$_じゃないの?

もうちょっと文法を見直そうよ。
858853:2001/04/27(金) 02:41
>>857 で、で、で、でけたー。はじめてだー。ありがとうございます!!

それが文法はサッパリでヘッドライン系のcgiを見比べまくって
ここに違いないと野性のカンで片っ端から試しまくってたんです。

有難うございました! さーあとはどうやってテーブルの中に入れるかだー。
859854=857:2001/04/27(金) 02:48
>>858
>それが文法はサッパリでヘッドライン系のcgiを見比べまくって
>ここに違いないと野性のカンで片っ端から試しまくってたんです。

そうならそうと最初に言ってくれ。
何もわからない奴とそうでない奴に対する返答って
変わるものなんだよ。

とりあえずとほほさんとこで基礎の勉強をしておいで。
http://tohoho.wakusei.ne.jp/


P.S.
とほほさんところ、移転したんですね。
未チェックの方は気をつけましょう。
態度デカくてすみません。 >各位
860名無しさん:2001/04/27(金) 02:48
>>855
ただ出来ないようだと言われても理由わからねーよ。
せめてエラーメッセージを書いてくれ。
エラーメッセージを見るには、#!/usr/bin/perlの直後にでも
use CGI::Carp qw(fatalsToBrowser);
という1行を入れればよし。

#なんとなく/dataディレクトリが書き込み不可っぽいけど。
861853:2001/04/27(金) 03:00
>>859 重ね重ね有難うございます。
掲示板アンケートで覚えるPerlプログラミングforCGIは
楽しく読了しました。
で、CGI&Perlポケットリファレンスを片手にいじってる
のですが、ちんぷんかんぷんで何がなんだかわかりません。。。
実用UNIXPerlハンドブックは最初の10頁ぐらいしか理解でき
ませんでした・・・といった程度です。
とほほさんところに書いてあるところぐらいまでは大丈夫そうな
雰囲気なのですが。。。

今もポケットリファレンスのsplitの説明でおさらいしようとした
のですが、、、、うーん。。。。参考図書スレで物色してきます・・・
862853:2001/04/27(金) 03:33
無事テーブルの中に入れることもできてひとつ大人になった気分です。。。
863shige:2001/04/27(金) 06:20
糞スレ
864名無しさん:2001/04/27(金) 06:24
真性厨房は糞してとっとと氏ね
865shige:2001/04/27(金) 06:25
何故糞しなくてはならないのか。
それが問題だ。
866あげ:2001/04/27(金) 06:41

             @` -―- 、
        @` l[》《]|      ヽ
        / i/ i ノノノ ))))〉
.      / i i |(リ ( | | | !    / ̄ ̄ ̄ ̄ ̄
      〈ヘ|_|l| l ゝ~ lフ/|   < 質問に答えてくれるみなさん ありがとう
       / | | |( ヽwliヽ |       \_____
      / /! | l ヘ《~ヘii~▲▲
     /  /ノノ! ノ|リ〉 \/( ゚ω゚)
   / @`  ./-‐- 、/V\ハ_ヲUU
   !/ ./    / / |   ゝ つつ
   ヽ_/   ./    !    jj  \
       /               i
      〈   /        |      |'
       ゝ /    l    |   !/
        `〜‐-L__」〜'^


867(゚Д゚)ハァ?:2001/04/27(金) 06:54
(゚Д゚)ハァ?
868名無しさん:2001/04/27(金) 07:01
>>855
gmtime()を使え。
869名無しさん:2001/04/27(金) 07:06
>>855
普通に、 /data に権限が無いのだと思いますが?
870弐ch編者:2001/04/27(金) 07:43
朝からつまらないね、、
ホント、下らない質問が多すぎるよ。
871shige:2001/04/27(金) 07:47
やったー ひとりでうんこできたよー

ねぇほめてー
872名無しさん:2001/04/27(金) 07:49
弐編、shige・・・
朝から白痴的な書き込みするなよ
873名無しさん:2001/04/27(金) 15:37
チャットのスクリプトでクッキーを取得していますが、
それは次回来たときに、名前の入力とかの作業を省くためですよね?
チャットを軽さ重視でいくならクッキーの取得とかの部分は
排除してもチャットの動作に影響はないですか?
874名無しさん:2001/04/27(金) 15:39
入室以外で名前保存のクッキー使ってるヘタレたチャットあるのか?
875名無しさん:2001/04/27(金) 15:45
>>873
普通は問題ないと思うが、削ったところで軽くはならないと思われ。
876名無しさん:2001/04/27(金) 16:02
>>873
レスありがとうございます。
クッキーなくしたら、リロード機能は使えなくなりますか?
手持ちのスクリプト見たら、
「# クッキーにリロード時間のない場合は初期値を代入
if ($c_retime eq "") { $c_retime = "$re_time"; };」
って書いてあるんですが。
htmlのrifrashではだめですか?
877名無しさん:2001/04/27(金) 16:03
軽くならないんじゃあんまり意味ないですね。
今のチャットには参加者表示機能くらいしかなくて
軽くするには他になにを削除すればいいんでしょうか。
878むぎ茶      :2001/04/27(金) 16:22


「rifrash」でだめなことは確かだな(n


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
むぎちゃんねる
http://aho0baka.virtualave.net/bbs/bbs.cgi
メイリングリスト
http://www.freeml.com/ml_info.php?ml=bitvalley
879名無しさん:2001/04/27(金) 16:25
>>877
別のスクリプトに乗り換えるというのはどうだ?
http://ziege.apgeo.com/test/
880ミ@`@`゚Д゚彡:2001/04/27(金) 16:28
>>876-877
軽くしたいならPerl+CGI以外の方法を取るのがいいと思うけどね。

因みに、rifrashじゃなくてrefreshね
881名無しさん:2001/04/27(金) 18:28
そろそろ、さすがに新スレかな。
882弐ch編者:2001/04/27(金) 19:19
もう終わったら。こんなスレ
なんの役に立つの?
883名無しさん:2001/04/27(金) 19:29
>>881
板移動予定だからこのままこのスレで良いんじゃない?
884881:2001/04/27(金) 19:34
>>883
30日に要望だったっけ。
うーん。まあ大丈夫か。
885名無しさん:2001/04/27(金) 20:35
takoは1000越えたら読めなくなるような軟弱CGIじゃないから大丈夫
886855:2001/04/28(土) 00:32
Software error:
Execution of number.cgi aborted due to compilation errors.

ご回答有難うございます。
このようなエラーが出たようです・・。
少し勉強してみますが、注意する事があったらご指摘下さい。
887名無しさん:2001/04/28(土) 04:01
>>886
コンパイルエラー? ・・・つーことは。
855はてっきりタイプミスだと思ったんだが
↓これ/dataの前のダブルクォートがマジで抜けてるのカー?

> dbmopen(%DATA@` /data/lostno"@` 0666);
888名無しさん:2001/04/28(土) 12:44
既出だったら本当にすみません。
昨日Prohostingにスペースを借りたのですが、
パーミッションの変更が出来ません。FTPには
FFFTPを使用しています。GoLiveを使っても同様でした
どなたか回答をお願いいたします…
スペースは http://storm.prohosting.com/ユーザ名/です
889名無しさん:2001/04/28(土) 16:58
えっと、dreamweaveってパーミッションの変更できないんですか。
いちおう機能みたいなのついてますけど。
転送にしか使えないんですか。
CGIがうごかないっす。
890名無しさん:2001/04/28(土) 16:58
rが抜けてました。
891名無しさん:2001/04/28(土) 17:08
>>889=馬鹿
892名無しさん:2001/04/28(土) 17:15
>>888-890
あのね。ここは「Perl初心者」コーナーなの。
スレ違い。ていうかむしろ板違い。
FFFTPやGoLiveやdreamweaverならWEB制作板の人間が詳しいと思うが。
893名無しさん:2001/04/28(土) 17:21
>>889
スレ違いだよ。
このスレのタイトルをよく読め。

サーバーごとの仕様なんざ、そのサーバーのサポートに聞けばいいだろ。
894893:2001/04/28(土) 17:21
被った上に大きな勘違い。
FTPソフトだったのね。
恥ずかしい。
895名無しさん:2001/04/28(土) 21:52
質問です。
Perl(とは限らないかも)であるビットが立っているか否か、
例えば"111000111"という並びで右3つのビットが立っているかを調べる、
などをするにはどうしたら良いでしょうか。
よろしくお願いします。
896895:2001/04/28(土) 21:53
間違えてsageてしまいました。
ageます。
897JAPU:2001/04/28(土) 22:08
if($var & 0x07){ ... }
ここで、0x07 は 00000111 です。OK?
898895:2001/04/28(土) 22:18
>>897
OK.

即答ありがとうございます。
助かりました。
899JAPU:2001/04/28(土) 22:50
補足しておくと、上記のは「下位3ビットのいずれかが立っている場合」の判定です。
全て立っているかを判定するには ($var & 0x07) == 0x07 とかしてくれ。

分かっているとは思うけど、念のため、
900895:2001/04/28(土) 23:11
>>899
冷静に考えるとその通りですが…分かってませんでした(;´Д`)
補足ありがとうございます。
901886:2001/04/29(日) 00:09
今チェックしましたが、それは単なるコピーミスで、
ダブルクォーテーションはついていました・・。
うーん・・分からないかも。
902名無しさん:2001/04/29(日) 00:45
>>901
本当は、コンパイルエラーが出るような未完成なスクリプトは、
ローカルマシンで動作チェックするのが正しい姿勢
なんですけどね。
どうしてもサーバに上げてエラーチェックするしかない場合は
↓こんなスクリプトを書いて、目的のスクリプトを呼び出す方法もある。

#!/usr/bin/perl
open STDERR@` ">&STDOUT";
$| = 1;
print "Content-Type: text/plain\n\n";
require 'number.cgi'; #←ここに本来のCGIスクリプト名

これだとエラーメッセージを行番号付きでもれなく表示してくれるはず。
903名無しさん:2001/04/29(日) 01:14
今週からCGIの勉強を始めました。
ある.logファイルを開いて<>で区切られた複数の要素からなる行を
読み出して、1つめと3つめの要素だけにしたい場合ってどうする
のでしょうか?
@line = ($no<>$name<>$title<>$ip);
($no<>$title) = @line;
というのを考えてみたのですが、間違っているのではないかと思う
んです。
904名無しさん:2001/04/29(日) 01:56
>>903
自分で考える心は尊いと思います。いやマジで。
でも少しはマニュアルなり参考書なり読んだほうがいいです。
間違ってるつーより、むちゃくちゃです。

よくある方法では、$lineに1行ずつ読み込むとして、
($no@` $title) = (split(/<>/@` $line))[0@` 2];
なんてふうに書けばよいかと思います。
905名無しさん:2001/04/29(日) 02:06
>>903
$data = "first<>second<>third<>forth";
$data = join('<>'@`(split(/<>/@`$data))[0@`2]);
print $data;

こーいう事か?
…と思ったら、$noと$titleに1番目と3番目をそれぞれ代入するって事か。
>>904に先を越された(w
906むぎ茶      :2001/04/29(日) 05:45


こんなくだらない質問に答えるやつがいるから
チュウボウが増えるんだよ
少しは考えろ(n


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
むぎちゃんねる
http://aho0baka.virtualave.net/bbs/bbs.cgi
メイリングリスト
http://www.freeml.com/ml_info.php?ml=bitvalley
907名無しさん:2001/04/29(日) 05:54
ランダムな数を変数に入れたいんですがどうすればいいですか?
908むぎ茶      :2001/04/29(日) 06:02




ネタ

909名無しさん:2001/04/29(日) 09:37
>>907
ネタと言われても仕方ない質問だが…
$n = rand($arg); #0〜$argのランダムな数を変数$nに入れる
910>907:2001/04/30(月) 00:36
こうかな?
#!/usr/bin/perl

$arg = 10000;

&srand;

$n = &rand($arg); #0〜$argのランダムな数を変数$nに入れる
print "$n\n";

sub srand {

my $seed = $_[0];

if ($seed) { $next = $seed; }
else { $next = time; }
$next = $next % 32768;

}

sub rand {

my $max = $_[0];

$next = ($next * 1103515245 + 12345) / 65536 % 32768;
if ($max) { $next % $max; }
else { $next; }

}
911名無しさん:2001/05/01(火) 23:43
WEBプログラミング板に新スレ立てました。
http://corn.2ch.net/test/read.cgi?bbs=php&key=988728069
912名無しさん:2001/05/03(木) 00:26
このスレは移転しました。廃棄スレになります。
CGI見つけたい人は 911のスレでお願いします。

−−−−−−−−−−−−−−廃棄−−−−−−−−−−−−−−
913名無しさん:2001/06/17(日) 15:49
あの、廃棄スレなんですが、webプログラミングには関係ないので
こっちで質問させて下さい。
自分でサーバー立てている会社って
そのサーバーはいつも電源を落としてはいけないんですよね。
そうしなきゃ自分の会社のHPとかアクセスできないですもんね。
914名無しさん:2001/06/17(日) 17:14
&d('.');sub d{opendir D@`($_[0]);my@a=grep!/^\.\.?$/@`readdir D;closedir D;
foreach(@a){printf"%".length($b="$_[0]\\$_")."s\n"@`$_;&d("$b")if(-d$b)}}

サブディレクトリを全部出力するの。(習作)
915名無しさん:2001/06/17(日) 17:31
913> 当たり前。無停電電源とかの装備も必要。
916名無しさん:2001/06/17(日) 21:44
Perl と関係無いだろ。
氏ね。
917名無しさん:2001/06/18(月) 11:29
>>916
ばーか
918なー:2001/06/18(月) 19:39
なんて荒んだスレだ。
919名無しさん:2001/06/19(火) 03:39
つーかWEBプログラミング板に引っ越したのでよろしく。
http://corn.2ch.net/test/read.cgi?bbs=php&key=988728069&ls=100
920名盤さん:2001/07/03(火) 05:58
ActivePerl(5.6.1.626-MSWin32-x86-multi-thread.msi)をインストール
しようと思ったら、「ウィンドウズのインストーラーが古いです。
アップデートしてください」といわれました。
多分、古いんじゃんくて、新しいからダメなんだろうかと思ってます。
win98seでie6なんですが、ieのバージョンをあげたのがまずかった
でしょうか?
5.5に戻そうとしても、ウィンドウズに「最新のieを持ってます」と阻止
されます。
教えてください。
921名無しさん:2001/07/03(火) 10:01
>>920=救いようの無い馬鹿
922名無しさん:2001/07/03(火) 20:25
>>920
インストーラが古いんだよ。
マイクロソフトに行ってDLしなされ
923名無しさん:2001/07/03(火) 22:32


ageんな、ヴォケ
924名無しさん
>>923
失敬