トップページ⇒php
1001コメント315KB

Perl コーディング初心者質問コーナー Part25

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん03/06/28 01:18ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
0803nobodyさん03/07/19 11:34ID:???
>>798
ネットショッピングかな?
商品登録だけじゃなくて、販売とか在庫管理まで考慮して
ファイルを設計する必要がある。
他の部分がどうなってるのか分からないけど、
商品詳細情報を個別のファイルにしておくと、
商品番号から詳細情報を表示するリクエストがあったときに
「全商品詳細情報ファイル」を読んで検索して表示するより速い。
内容に不備・誤記があったときの訂正も楽。
完売したらインデックスファイルの該当個所だけ変更すればよい。
目的に合わせてファイルを分けるのは異常ではなく当然。
Perl というよりデータベース設計の問題だと思われる。
080479803/07/19 17:38ID:???
>>803
なるほどー、そういう利点があるんですね。
それは、すごく初耳だったので、勉強になりますた。

>販売とか在庫管理まで考慮してファイルを設計する必要がある。
これをつくった人は、
そこまでは、なにも考えてないみたいです。
ショッピングカート経由で注文があったらメールがいくだけみたいな。

>完売したらインデックスファイルの該当個所だけ変更すればよい。
っていう機能を管理者画面につけてないみたいですしね。
0805nobodyさん03/07/19 19:07ID:???
>>804
将来的な機能追加を見越した設計だったのかもしれない。

メールを送るだけだからファイル管理だけで充分だけど、
単一ファイルじゃ拡張しにくくて気持ち悪いとか。
ある程度の規模や機能に達すればファイルでなくて本格的な
データベースを導入することになるんだろうけど。

>そこまでは、なにも考えてないみたいです。
在庫管理するかどうかのプログラマに決定権があったとは思いにくいなぁ。
単に初回作成時は、依頼主の予算やショッピングサイトの来客数の見込みから
簡単に済ましただけかも知れない。

実店舗がある個人商店の片手間なショッピングサイトとかなら、大枚はたいて初っ端から
大掛かりなシステムは依頼できないっしょ。
080679503/07/19 19:53ID:???
(´・ω・`)<俺、日本語が不自由なんだよ…。
0807nobodyさん03/07/19 21:46ID:???
>>806
ィ
 �`
0808nobodyさん03/07/19 21:54ID:???
ime.nuや、cgiboy.comみたいに、
http://ime.nu/pc2.2ch.net/やhttp://cgiboy.com/pc2.2ch.net/のようなアドレスで
動的にページを出力するにはどうしたらいいんでしょうか?
PATH_INFOを使用するにしても、スクリプトの名前が入ると思うのですが・・・
0809nobodyさん03/07/19 22:09ID:???
>>808
スレタイ嫁。
0810nobodyさん03/07/20 00:14ID:gCjTktSy
掲示板のcgiファイルに「ー」を記載すると
アップ出来ないみたいなんですが、
どうしても表示したいので、やり方を教えて下さい。
\で囲んだりしても駄目だったので。
例えばクーラーを表示する場合とか。
0811nobodyさん03/07/20 00:16ID:???
\Qー\E
0812nobodyさん03/07/20 02:13ID:???
アップできないわきゃーないだろう。FTP送信時にエラーでも出るの?
質問は正確にね。
0813nobodyさん03/07/20 02:43ID:???
>>810
エラー文面も載せてもらえるといいな。
FTPだとしたら取れないかな?

「クーラー perl 文字コード」でぐぐれば幸せになれるかもね。
0814nobodyさん03/07/20 09:35ID:XGlmJStz
テキストファイルtestfileで、上一桁が同じなら、最初に現れる行だけを
残した別ファイルdatabaseを作りたいのです。
具体的には、
a:xxx
b:yyy
a:zzz
から、3行目を削除して
a:xxx
b:yyy
としたいのです。
そこで、正規表現とDBMハッシュの勉強を兼ねて、次のスクリプトを作って
みました。

dbmopen(%DB, "database", 0666);
open(IN, "testfile");
while (<IN>) {
if (/(\w):(.*)/) { $DB{$1} = ":" . $2 unless exists($DB{$1}); }
}

実行すると、
AnyDBM_File doesn't define an EXISTS method
というエラーメッセージが出ます。
DBMハッシュにexists関数は使えないのでしょうか?
どなたか、ご教示ください。
(exists($DB{$1})ではなく、$DB{$1}にすれば良いのですが、
existsを使ってみたかったのです。)
0815nobodyさん03/07/20 10:11ID:???
>>814
dbmopenじゃなくtieを使えば?
0816 ◆hMJAPH9PWA 03/07/20 11:32ID:???
>>814
dbmopen()ってのは"幾つかのDBMライブラリのうち使えるものを使う"という仕様なので、
実際にどんな操作が可能かはそのDBMライブラリに実装によるんだよ。
で、困った事に大抵のUnixでのデフォルトであるNDBM_FileはEXISTSが(現時点では)実装されていないんだよね。
とりあえず、dbmopen()を使う前に、例えば"use DB_File"や、"use SDBM_FIle"などと
他のDBMモジュライブラリルを使う事を明示すればいいかな。

dbmopen()はAnyDBM_Fileをtie()するだけの関数なので、
perldoc AnyDBM_Fileとperldoc -f tieも参照されたし。
0817nobodyさん03/07/20 12:41ID:???
dbmopenは、Perl4時代の遺物。>>815の言うようにtie使え
081881403/07/20 13:18ID:XGlmJStz
>>816
「実際にどんな操作が可能かはそのDBMライブラリの実装によるんだよ。
で、困った事に大抵のUnixでのデフォルトであるNDBM_FileはEXISTSが(現時点
では)実装されていないんだよね。」
良く分かりました。どうも有り難うございます。

>>815, >>817
私は「初めてのPerl」を読み終えたばかりの初心者です。タイ変数については
これから「プログラミングPerl」で勉強します。
0819nobodyさん03/07/20 18:21ID:???

while( 1 ) {
 ・
 ・
 ・
}

…の部分はかなり大きな処理で、ループの上に戻ってくるまでに
時間がかかるスクリプトがあります。ループの上に戻ってきた時に
スクリプトの自分自身をリロードするような事ってできますか?

何故こんな事したいかと言うと、ループの上に戻って来る前に、
スクリプト修正とか入ると、一旦スクリプトを終了しないといけないので
リロードできないものかと…。因みに、 while の前後にも処理があります
0820nobodyさん03/07/20 18:28ID:???
リロードしたら最初からやるのと同じだろ
0821nobodyさん03/07/20 18:28ID:???
ループの上?
0822闇主03/07/20 18:40ID:???
>>819
スクリプトファイルを変更しても
既に動いているプロセスのコードは変わらない。
変更後のスクリプトによる別プロセスを立ち上げ直す必要がある。
0823nobodyさん03/07/20 18:46ID:???
何でそんなことがしたいのかは置いといて。

while内のコードを別ファイルにして、ループ内で毎回読み込んでevalブロックの中で
実行させるというのはどうだろう。
0824nobodyさん03/07/20 19:44ID:???
>>823
確かにそのやり方でも可能だな。
処理にもよるが重いだろうな。レンタル鯖でやるのはどんなもんだろうか。
0825nobodyさん03/07/20 20:06ID:???
>>824
while(1)の時点ですでに終わってると思うけどね・・・・
0826nobodyさん03/07/20 20:33ID:???
レンタル鯖で動かすって誰が言ってるんだ?
Perlと言えばCGIしか思いつかないのか。
0827nobodyさん03/07/20 20:51ID:???
>826
おまいさん、この板はWebProg板ですよ?
ム板と勘違いしてる?
0828nobodyさん03/07/20 20:55ID:???
鯖にもいろいろあるわけで。。
0829nobodyさん03/07/20 21:00ID:???
>>827
うひゃあ。思いっ切り勘違いしてました。スマソ
0830nobodyさん03/07/20 21:25ID:???
俺もたまにム板と勘違いするから心配すんな。
向こうで正規表現スレに誘導したの、実は俺。
0831nobodyさん03/07/20 21:28ID:???
2ちゃんねるの dat ファイル読み出しスクリプト作ったんですが、ちと、悩んでいます。何故か、gzip 転送されてこないんです。
どこがオカシイか教えてください
#!/usr/bin/perl
use LWP::UserAgent;
use Compress::Zlib;
{
$ua = LWP::UserAgent->new;
$ua->agent( "Monazilla/1.00 ( ´,_ゝ`)プッ/1.0" );
$ua->parse_head( 0 );
$req = HTTP::Request->new( GET => $ARGV[0] );
$req->protocol( 'HTTP/1.1' );
$req->header( 'Accept-Encoding' => 'gzip, deflate' );
$req->header( 'Connection' => 'keep-alive' );
print $req->as_string;
# リクエストの送信
$res = $ua->request($req);
# 出力のチェック
if ( $res->is_success ) {
print $res->headers->as_string;
if ( $res->headers->content_encoding =~ /gzip/ ) {
print "圧縮転送された\n";
$t = Compress::Zlib::memGunzip( $res->content );
}
else {
print "圧縮転送されてない\n";
$t = $res->content;
}
}
else { print "Error: " . $res->status_line . "\n"; }
}
0832nobodyさん03/07/20 21:39ID:???
>>831
Accept-Encoding:gzip
か
Accept-Encoding:x-gzip
0833nobodyさん03/07/20 21:44ID:???
>>832 今、やってみましたが、駄目でした

$req->header( 'Accept-Encoding' => '*' );

にしても、駄目でした。
0834nobodyさん03/07/20 22:00ID:???
>>827
cgiは書いたことないが、web用のperlスクリプトは
いっぱい書いてるぞ
0835nobodyさん03/07/20 22:01ID:???
>>831
subject.txt以外は今はgzip転送してないのでは?
0836nobodyさん03/07/20 22:05ID:???
>>835
subject.txt も gzip 転送されてないようです
0837nobodyさん03/07/20 22:35ID:???
そうだっけ。少し前に調べた結果だから変わってるかも。
0838nobodyさん03/07/20 22:39ID:???
monazillaスレあたりを読んできたほうが
0839nobodyさん03/07/20 22:57ID:ucM2tzJ9
簡単な暗号っぽいやつをやっているのですが
例えば $hoge = "\x53\x54\x2d\69" なら
\x69\x2d\x54\53 と逆転させてたいのですが
どうやってやるのがスマートなのでしょうか?

一応初心者ながら 1バイトずつ配列に読み込んでreverseでやるのを考えてみたんですが・・・
0840あぼーんNGNG
あぼーん
0841あぼーんNGNG
あぼーん
0842nobodyさん03/07/20 23:22ID:???
>>839
スカラコンテキストでそのままreverseに入れれば、反転した文字列が得られる。
perldoc -f reverse もしくは「perl reverse」でぐぐる。
084363403/07/20 23:40ID:???
>>831
$req->header('ACCEPT_ENCODING'=>'gzip');
で試してみそ・・・
0844nobodyさん03/07/21 00:44ID:???
perl2exeで配布できるようにしたperlのプログラムって
ソフトウェアと呼んでもいいの?
0845nobodyさん03/07/21 01:05ID:???
少なくともハードウェアではない
0846nobodyさん03/07/21 01:13ID:???
>>844
ソフトです
0847nobodyさん03/07/21 01:57ID:???
>>838
一応、読んで見てきましたが、該当するような記述は見当たりませんでした。

>>843
それをやっても、駄目でした。LWP は何故か

Accept-Encoding: gzip

と、勝手に変更しますね。


まぁ、2ちゃんねる側の仕様が変わったのカナ?
0848nobodyさん03/07/21 10:23ID:???
OOPでスクリプトを書こうと思い、せっせとスクリプトを書いているのですが、OOPで書く利点がぜんぜん見当たりません。
強いて言うならば「今風」ってだけです。

いま作っているモジュールが特定のスクリプト専用に作っている為、そういう風に思うのかもしれません。
それとも根本的に考え方が間違ってるのかもしれません。
それすらわからなくなってきてしまって。

OOPで書く利点をお教え頂ければ嬉しいです。
宜しくお願いします。
0849ともちゃん03/07/21 11:44ID:O4IhS66K
クッキーを取得して、なければ違うページに移動するスクリプトを試しています。
うまくいかなくて最後の3行、$$cook{$key} = $value;}}の最後の所がsyntax errorだと表示されます。
]か}のミスなのだそうです(by CGIROOM・エラーチェック)。
でも、[や{の数とも合っているし、わたしは変だと思わないのです。
どこがどう変なのか分かりますか?
お願いします。

#!/usr/bin/perl
use strict; &main; exit;
sub main{
my $id = "abc
my %cook = ();
getcookie("abc",\%cook);
unless($ENV{'HTTP_COOKIE'} = ~/%cook/){
print "Location: http://aaa/cookie.html\n";}
sub getcookie{
my ($id,$cook) = @_;
my %cook = ();
my $cookie = $ENV{"HTTP_COOKIE"};
$cookie =~ tr/+/ /;
$cookie =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2',$1)/eg;
foreach my $x (split ";",$cookie){
my ($key,$value) = split "=",$x,2;
$key =~ tr/ //d; $cook{$key} = $value;}
foreach my $x (split ",",$cook{$id}){
my ($key,$value) = split ":",$x,2;
$$cook{$key} = $value;}}
0850nobodyさん03/07/21 11:46ID:???
>>848
君には必要ないと。
0851nobodyさん03/07/21 12:10ID:???
>>849
my $id = "abc

なんか閉じてないけど。
085284803/07/21 12:20ID:???
>>850
それはある意味正解なのですが、それを言っちゃうと・・・
でもOOPで書きたいんです。

>>849
どうがんばってみても「}」が一個足りません。
気のせいでしょうか?
0853ともちゃん03/07/21 12:31ID:O4IhS66K
851番さんありがとうございます。
書き写す時のミスでmy $id = "abc";となっていました。<(_ _)>

852番さんありがとうございます。
わたし、下の行ばかり見ていました。わたし馬鹿ですね。
もっと上の行になかったの気が着かなかったです。(^^ゞ
直したらエラーの表示はなくなりましたが、全然動いていないみたいなんです。(;_;)
0854nobodyさん03/07/21 12:33ID:???
OOPって要は関数と変数がセットになってるだけだからなあ
単に書き方が違うだけ
それが書きやすい訳でも大規模開発に適してる訳でもない
構造化プログラミングの流れは、ソフトウェアの品質向上に
大きく貢献したけど、OOPはそういうのとは別のような
085584803/07/21 13:07ID:???
>>854
実際問題としてperlでOOPな書き方すると、なんとなく直感に反するんですよね・・・
片方でuse strict;して汚染しないようにがんばってるのに、モジュール内では$self->{key}なんかで簡単に読み込めてしまう。
main的にはスパゲティにならないと思うけど、モジュール内ではもうすごい事になりそう。
まだ勉強途中なので、思い切り的外れな考えかとは思いますが・・・

>>853
動くかどうかは分かりませんが、参考までに。

#!/usr/bin/perl
use strict; &main; exit;
sub main{
my $id = 'abc';
my %cook;
if ($ENV{'HTTP_COOKIE'} =~ /$id/i){ %cook = getcookie($id); }
else { print "Location: http://aaa/cookie.html\r\n\r\n"; }
}
sub getcookie{
my %cook;
my $cookie = $ENV{"HTTP_COOKIE"};
$cookie =~ tr/+/ /;
$cookie =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2',$1)/eg;
foreach (split /;/, $cookie){ my ($key,$value) = split /=/; $key =~ tr/ //d; $cook{$key} = $value; }
foreach (split /,/, $cook{$_[0]}){ my ($key,$value) = split /:/; $cook{$key} = $value; }
%cook
}
0856nobodyさん03/07/21 13:17ID:???
>>855
OOもオブジェクト間の関連とか考え出したらぐちゃぐちゃになります。

クラス作るのがOOとほざいているのならば今すぐ去ね。
0857nobodyさん03/07/21 13:24ID:???
OOならオブジェクト指向の略だって知ってるんですけど、
OOPって?
オブジェクト指向プログラミングの略?
085884803/07/21 13:31ID:???
>>856
そうですか。
オブジェクト間はいくらでも絡まっていいけど、それが外からカプセル化して見えないようにすればいいと。
ますます難しくなってきました。

>>587
です。
0859nobodyさん03/07/21 13:39ID:???
>>848
もっと簡単に考えれ。
リファレンスでアクセスするサーブルーチンて具合に。
0860nobodyさん03/07/21 14:02ID:???
activeperl5.6.1以降はperl/tkをインストールする必要はなくなったの?
086184803/07/21 14:04ID:???
>>859
ありがとうございます。
本を読めば読むほど、サイトを見れば見るほどわからなくなってました。
基本に戻ってがんばってみます!
0862nobodyさん03/07/21 14:06ID:???
sub new{
  my ($member1,$member2,$menber3);
  my $this={
    func1 => sub{$member1++;print "${member1}func1\n";},
    func2 => sub{$member1++;print "${member1}func2\n";},
    func3 => sub{$member1++;print "${member1}func3\n";},
  };
  return $this;
}
my $obj=new();
$obj->{func1}->();
$obj->{func1}->();
$obj->{func2}->();
$obj->{func3}->();
見たいにC++のprivateメンバーみたいなのも作れる。
protectedは作れなさそうだけど。
通常のprelのOOPと組み合わせることも出来るだろうし。
通常の方法以外のOOPを考えてみた

0863nobodyさん03/07/21 14:22ID:???
>>860
まじでつか?
0864nobodyさん03/07/21 14:40ID:???
サブルーチンへの引数渡しについて質問。

#!/usr/bin/perl
@a = ( '1aa', '2aa', '3aa', '4aa', '5aa', '6aa',);
$b = 'hello!!';
foo( @a, $b );
exit;

sub foo
{
my ( @one ) = @_;
my ( $two ) = pop( @one );
print "one = @one\n";
print "two = $two\n";
}

foo 内で @one, $two を分ける方法は上記の様なコードで正しいでしょうか?
0865nobodyさん03/07/21 14:41ID:???
>>848
OOの考え方ができていればそれなりに利点はある。
責任をはっきりさせるように作れば保守性もあがるしね。
ただ、perlはもともとOOするためのスクリプトじゃないので
OOには不向き。
完璧なOOをしようとしても、いろいろと不都合がでて、結局
ぐちゃぐちゃなソースになってしまう。

ちなみに、モジュール内で
$self->{'key'}でアクセスできるのはOOとして正しい。
Javaでもthis.keyとかってアクセスできるしね。
ただ、問題なのがモジュールの外からでも
$object->{'key'}でアクセスできちゃうこと・・・・・

まぁ、所詮perlなのでその辺はあまり深く考えないほうがいいっす。
0866nobodyさん03/07/21 14:44ID:???
>>864
どうなんだろう?うまくいくならいいんじゃない?
もれだったら以下のようにする

foo($b,@a);

sub foo {
my $b = shift;
my @a = @_;
・・・・・
}

もしくは
foo(\@a, $b);

sub foo {
my $aRef = shift;
my $b = shift;
my @a = @$a;
・・・・・
}

引数で渡した値はすべて@_に詰め込まれるので
確か
sub foo{
my @a = @_:
した時点で、$bも@aに入っちゃう気がする・・・・
086784803/07/21 14:54ID:???
>>865
>$object->{'key'}でアクセスできちゃうこと・・・・・
やっぱりこれが納得できなかったんですよ・・・

でもかなりなぞが解けてきました。
後はいかにOOPっぽく書くかだけです!
勉強になりました。

>>864
私も@aと$bは逆にします。

ちなみに確か$bはソートの時に使う変数なのであまり使わないほうがいいかもです。
0868nobodyさん03/07/21 14:54ID:???
俺はこっちを使うな

foo($b,@a);

sub foo {
my $b = shift;
my @a = @_;
・・・・・
}
0869nobodyさん03/07/21 15:09ID:???
>>866
>>868
即レスありがとう。

my $b = shift;
my @a = @_;

がスマートですね。こっち使います
0870ともちゃん03/07/21 15:33ID:O4IhS66K
855番さん、わたしのためにありがとうございます。
> 動くかどうかは分かりませんが、参考までに。
> #!/usr/bin/perl
> use strict; &main; exit;
〜
色々変更したのですが、残念ながら動かなかったんです。(T_T)
なので、その前にセットできているか確かめてみました。
そしたら、書き込めていないらしいのです。
#!/usr/bin/perl
use strict; &main; exit;
sub main{my $id = "abc";
my $value = "def";
print "Set-Cookie: ".setcookie($id,\$value);
print "Content-Type: text/plain\n\n";
print "Welcome !";}
sub setcookie{
my ($id,$cookie) = @_; my $expires = ""; my $day ="";
$$cookie =~ s/([^\w ])/'%'.unpack('H2',$1)/eg;
$$cookie =~ tr/ /+/;
if ($day > 0){
my ($mday,$month,$year,$youbi) = (localtime(time + (7200)));
$youbi = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$youbi];
$month = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec')[$month];
$year += 1900;
$mday = sprintf("%02d",$mday);
$expires = " expires=$youbi, $mday-$month-$year 00:00:00 GMT";}
return "$id=$$cookie;$expires\n";}
これで書き込めるはずだという事です。
こっちは変じゃないですよね?
0871nobodyさん03/07/21 15:45ID:???
>>870
君の頭が変
変っていうかおめでたいね。

できるかできないか実際やってみればいいだろ
ヴォケ!
それで、書き込めなかったらどっか悪いんだよHAGE!
そもそも、Cookieについて理解してるのか???ぁあん(゚Д゚#)

my $day = "";してて
if($day > 0)
ってのがわけわからんけど
0872nobodyさん03/07/21 15:49ID:???
>>871
病院いったほうがいいよ。
087387103/07/21 15:53ID:???
>>872
明日いってくる
0874nobodyさん03/07/21 18:35ID:???


























0875nobodyさん03/07/21 18:48ID:???
>>874
は?そりゃお前が悪いだけだろ。
3行目にprint $count;を入れてみろ。
0876nobodyさん03/07/21 19:35ID:???
>>870
重要なことは、知りたい物をはっきり目に見える形にすること。
やり方はいろいろあるけどね。

>print "Content-Type: text/plain\n\n";
>print "Welcome !";}

の部分を以下に書き換えで、クッキーを見る。

print <<'EOF';
Content-type: text/html

<html><head><title>check</title></head><body>
<script language="JavaScript"><!--
alert("Cookie=\""+document.cookie+"\"");
//--></script>
</body></html>
EOF
}
0877nobodyさん03/07/21 19:54ID:???
<script type="text/javascript"
と書く香具師は誰もいないのか鬱。
0878nobodyさん03/07/21 19:56ID:???
>>877
Perlスレでわざわざ嘆くことでも無かろう。
0879nobodyさん03/07/21 19:57ID:SiseSbMQ
ネットサーフレスキューの簡易データベースの項目を増やすにはどうすればいいですか?
0880nobodyさん03/07/21 20:00ID:???
>>879
死ね。
0881nobodyさん03/07/21 20:09ID:???
>>879
このスレは「perlコーディング初心者」の質問スレなので、レスキューやKENT等の
ヘボスクリプトをいじれないウルトラボは経験値上げてから来てください。
0882nobodyさん03/07/21 20:27ID:???
ウルトラボ?
0883nobodyさん03/07/21 20:30ID:???
>>877
何を考えてんだか
0884nobodyさん03/07/21 21:33ID:7NpeSLR0
連想配列からキーをスカラー変数で指定して
値を取り出すことは不可能でしょうか?

$nedan = $F_NEDAN{$name};
これでやってみると
$nedanは空でした。
0885nobodyさん03/07/21 21:46ID:???
>>884
はいはい、良かったね。氏ねバカ。

print $F_NEDAN{hoge},"\n";

$name = "hoge";
print $name,"\n";
print $F_NEDAN{$name},"\n";
0886nobodyさん03/07/21 21:46ID:???
>>884
それはお前がミスしてるだけ。
$nameにブツが入っているのかどうかよく確認しろ。
0887nobodyさん03/07/21 22:28ID:???
おまえらイライラすんなって。
0888nobodyさん03/07/21 22:48ID:???
>>885
カルシウム タリナイナ (´д)ヒソ(´д`)ヒソ(д` )
0889nobodyさん03/07/21 23:05ID:???
>>860
は本当?
0890nobodyさん03/07/21 23:50ID:???
>>889
本当。使ってみればわかることじゃん。
0891ともちゃん03/07/22 01:21ID:U6Ps44rq
871番さん
my $day = "";のif($day > 0)ですがif($day = 0)にしました。
でも、my $dayの記述はやめてしまいました。
日時の取得も{}から外に出して時間も取得する事にしました。(^_^)v
わたし馬鹿ですから・・・

876番さん、ありがとうございます。
時間の取得に関係する事は前にも書いたみたいにして
クッキーが入っているか試してみましたよ。
abc=defってアラートが出てきたので、書き込まれている事になると思います。
だから、それに対してのクッキーの読み込みの部分がうまくいかないみたいです。
私の最初の書き方がダメだったのかしら・・・(;_;)
855番さんにせっかく教えてもらえたのに〜。

分からなくて困ってしまいました。
0892nobodyさん03/07/22 02:02ID:???
めちゃくちゃだな。if($day = 0)
0893nobodyさん03/07/22 02:04ID:???
まだやってんのか・・・
cookieの読み書き使ってるスクリプトなんかいくらでもあるんだから、
それでも参考にしたほうが早い
0894nobodyさん03/07/22 03:10ID:???
GETしに行って、デッドロックを避ける為に
タイムアウトさせたいのですが、
どう書いたらいいですか?
0895nobodyさん03/07/22 04:20ID:???
>>891
クッキーを見えるようにスクリプトを書きかえて確認しる。
難しい所はないでしょ?

>>894
alarmとシグナルの使い方なら、
Perl クックブックのレシピ16.21
もしくは perldoc perlipc
http://www.kt.rim.or.jp/~kbk/perl5.005/perlipc.html#Signals
もしくは
http://pc2.2ch.net/test/read.cgi/php/1044717887/879-886
辺りで。
0896nobodyさん03/07/22 08:49ID:I6YqyoJP
今、htmlファイルを読み込み、そこに新たなデータを付け加えてまたhtmlに書き出すスクリプトを作っています。

$name3 = '../../name.html';

open IN,"$name3";
@UP = <IN>;
close IN;

$temp = <<"TEMP";
<!--NEW UP-->
<div>
<p>$date</p>
<p>$name1</p>
<p>$name2</td>
</div>
TEMP

foreach $upd (@UP){
$upd =~ s/<!--NEW UP-->/$temp/;
}

open IN, ">$name3";
print IN @UP;
close IN;

というように書いてみたのですが、name3.htmlに書き出してくれません。
どう書いたら、htmlを書き出してくれるでしょうか?
0897nobodyさん03/07/22 09:44ID:???
ActivePerl5.8を入れてPerl/tk使ってみますた。
Dos窓がビロビロと出てくるのが気になりイライラがつのります。
Perl/tkを何に使うおうか小一時間かんがえますた。

答え(妄想してください。): ・・・・・・・・・・・・・
0898nobodyさん03/07/22 10:22ID:???
>>896
> $name3 = '../../name.html';
name3.html が定義されていません。

> <p>$name2</td>
</p>がありません。

> $upd =~ s/<!--NEW UP-->/$temp/;
$upd =~ s/<\!--NEW UP-->/$temp/;
と描くべきでしょう。

> print IN @UP;
print IN join("\n",@UP);
ではないでしょうか?

>>897
板違い。
電波・お花畑
http://etc.2ch.net/denpa/
0899nobodyさん03/07/22 10:29ID:???
>>898
! はメタ文字じゃないぞ。
0900nobodyさん03/07/22 10:47ID:???
>>896
はいはい、良かったね。氏ねバカ。

1.name.htmlに書き出しているのに、name3.htmlに書き出されると勘違いしている。

2.書き込み権限が無い
open IN, ">$name3" or die $!;

質問がめちゃくちゃだからこれ以上書き込みするな。礼も何もいらん。
質問すらまともにできないのは初心者未満だ。もう一度小学校行って来い。
0901nobodyさん03/07/22 11:13ID:???
>>899
すまぬ。
?<! と勘違いしていたようだすた。∧||∧
0902nobodyさん03/07/22 12:21ID:???
>>895
げ。windowsでは使えないって書いてある、、、
レス数が900を超えています。1000を超えると表示できなくなるよ。