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

【Perl 】初心者コーナーPart8

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/10/24 14:11ID:???
いらっしゃーい、perlのコーディングで困ってる人のスレです。

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

1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。

参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://ebi.2ch.net/test/read.cgi/php/988809842/l50
CGIの質問はこちら【CGIだけど、なんか質問ある?part4】
http://ebi.2ch.net/test/read.cgi/php/1000804655/l50

過去ログ、その他の役立ち情報は>>2-10を見よう。
0607名無しさん@お腹いっぱい。01/12/06 23:42ID:???
htmlからcgiへフォーム送信しています。
htmlでmethodはpostです。
それで渡す値を色々試したいのでurlに?hoge=引数の形で
試すのですがうまく渡りません。
単にurlに引数を渡す場合でもhtmlのmethodをgetに変えなきゃいけないんでしょうか。
0608名無しさん@お腹いっぱい。01/12/06 23:50ID:???
やってみればスグに分かる。
0609名無しさん@お腹いっぱい。01/12/07 01:34ID:???
cgi-libとかってクエリでキーが複数あった場合
"\0"をセパレートとしてるけど、これって値事態に
"\0"があったら意味ないよね?
それとも\0ってなにか特殊なの?
061060901/12/07 01:37ID:???
s/値事態/値自体/;
0611名無しさん@お腹いっぱい。01/12/07 01:42ID:We0Nr7br
初心者ということで教えてください。
perlで処理をすべて1ファイルで記述して
100KBくらいになったCGIは
やっぱり重いですか。
分割したほうがいいですか?
0612名無しさん@お腹いっぱい。01/12/07 02:09ID:???
>>611

分割したって同じじゃない?
0613名無しさん@お腹いっぱい。01/12/07 02:13ID:???
>>611
>初心者ということで教えてください。
これを書いてしまったことにより無視されるに50円。
0614名無しさん@お腹いっぱい。01/12/07 02:13ID:???
>609
&で切っても&が有ったら意味ない、=で切っても=が有ったら意味ない
普通は&や=より\0使ったリクエストのが少ないだろ
>610
100KBくらいのCGIを書ける頃には分かるから気にすんなw
0615名無しさん@お腹いっぱい。01/12/07 02:24ID:???
>>606
>�@if(100 <= $total < 200)
>SQL文は�@のやり方でいけたんですけれど。
いけないって。DBは何?
SQLなら WHERE $total <= 100 AND $total < 200 って書かないとエラーになるYO!
0616名無しさん@お腹いっぱい。01/12/07 02:26ID:???
>>615
WHERE $total >= 100 AND $total < 200
0617名無しさん@お腹いっぱい。01/12/07 08:27ID:???
>>604
c
abc
となるなら、端末の設定も問題ないと思います。
また、vi上で^Hと表示され、^とHから成る(カーソルが2カラム分動く)のなら、
その文字はBackSpace(Ascii Code: 0x8)です。

>>596のみのスクリプトを端末ではなくリダイレクトでファイル出力し、その
結果をviで見たら、
a^Hb^Hc
abc
となりますか? od -cxの出力結果でも確認できます。
もし、^Hや\bが正しく出力されているのであれば、問題はスクリプトの別の部
分にあると疑ったほうがよいでしょう。

ちなみに WinNT + ActivePerl v5.6.1で、>>572のコードの先頭に
$line = "a\bb\bc";
を追加した結果をファイルに落として覗くと、
以下の通り期待した結果となります:

さばb^Hcさば
さばcさば
いわしcいわし
0618名無しさん@お腹いっぱい。01/12/07 10:57ID:yYR0Ii3K
windows2000で使えるパールソフトはないのでしょうか?
0619名無しさん@お腹いっぱい。01/12/07 12:08ID:???
>>3の上から3番目
0620名無しさん@お腹いっぱい。01/12/07 12:17ID:???
パールソフト
0621名無しさん@お腹いっぱい。01/12/07 12:19ID:???
パールライス
062261901/12/07 14:43ID:???
ああ、突っ込みたくてうずうずしていたのに・・・
062361101/12/07 15:44ID:???
>>612
例えば
Perlで書いた掲示板プログラムをみると
管理用.cgiとbbs.cgiというように
分けてあるものと、
管理用も、bbs用も1ファイルで全て記述してある
ものを見かけるので、
実行速度とか関係あるのか、どちらが良いのでしょう?
.cgiは毎回毎回ロードされるのですか?

>>613
>初心者ということで教えてください。
私のような初心者が質問していいスレッドだと
思ったのですよ。無視しないで教えてくれ〜。
0624名無しさん@お腹いっぱい。01/12/07 15:56ID:???
もし指定したディレクトリが存在しなければ、そのディレクトリをつくれ!
って言う書式を教えてください
0625名無しさん@お腹いっぱい。01/12/07 16:05ID:???
>>624
if (ディレクトリが存在しない) {
ディレクトリをつくれ!
}
0626名無しさん@お腹いっぱい。01/12/07 16:09ID:???
なるへそさんくす

[[解決]]
0627名無しさん@お腹いっぱい。01/12/07 18:24ID:???
質問です。

$tensu{'田中'} = 100;
$tensu{'鈴木'} = 90;
$tensu{'佐藤'} = 100;

といったデータをsortした場合、田中と佐藤のどっちが先に来るかというのは
法則があるのでしょうか?
いつも同じ結果になるので法則があるのだとは思うのですが、その法則とは
どのような法則になっているのでしょうか?
もしご存知の方がいたら教えていただけると助かります。
よろしくお願いします。
0628名無しさん@お腹いっぱい。01/12/07 18:33ID:???
最初に定義した順だ
0629名無しさん@お腹いっぱい。01/12/07 18:43ID:???
本当ですか?
0630名無しさん@お腹いっぱい。01/12/07 18:44ID:???
>628
定義した順という事は上の例で言えば田中、鈴木、佐藤の順という事ですか?

print "Content-type: text/plain\n\n";
$tensu{'田中'} = 100;
$tensu{'鈴木'} = 100;
$tensu{'佐藤'} = 100;
$tensu{'山本'} = 100;
$tensu{'木村'} = 100;
foreach(sort{$tensu{$a} <=> $tensu{$b}} keys %tensu){
print $_."\n";
}

↑この例で試した場合、
↓のような順で表示されたのですが・・・。
木村
鈴木
山本
佐藤
田中
0631名無しさん@お腹いっぱい。01/12/07 19:17ID:???
文字列のソートはcmpだよ、<=>だと比較対象がisnumberじゃない時に
スルーされる(筈)だからソートは行われない
print "$_\n" for sort{$a cmp $b}qw(cat rabit dog monkey mona);
日本語をソートしたいならJperlを使おう
0632名無しさん@お腹いっぱい。01/12/07 19:34ID:???
>631
いえ、数字ソートした場合の同値の並び順の法則を聞きたいのですが・・・。
0633名無しさん@お腹いっぱい。 :01/12/07 19:55ID:???
だから行われないっつってんのに :-(
print "$_\n" for sort{$a <=> $b}qw(鈴木 山本 田中 木村);
鈴木
山本
田中
木村

で、何でおかしな並べ替えが行われてるかと言うとkeysを通すからですが
この時keysが返す値の並びは***不定***なので
何から出てくるかは完全に***予測出来ません***
0634名無しさん@お腹いっぱい。01/12/07 19:59ID:???
何故かと言うとハッシュテーブルから一致した物をどんどん引き抜いてるだけなので。
これが気に入らないならハッシュ法を調べて、値を返す前にソートする様に
keysを改造して下さい :-)
0635名無しさん@お腹いっぱい。01/12/07 20:17ID:???
>633-634
つまりハッシュテーブル内での記録状態に依存されるという事ですね。
こちら側からはその記録状態を把握できないから法則性を見出す事は出来ないと。
その返答で十分です。
ありがとうございました。
0636JAPU@はにゃ〜ん ◆JAPUTeX. 01/12/07 20:59ID:???
use Tie::IxHash;
tie %moemoe, "Tie::IxHash";

すれば keys %moemoe で "定義した" 順番に返ってくるにょ。
http://search.cpan.org/search?dist=Tie-IxHash
0637名無しさん@お腹いっぱい。01/12/07 21:00ID:???
>>611,623
たいして変わらん。
まず読みやすく書け。
管理がしやすくなるなら分割しろ。
初心者だから〜という考えは捨てろ。
0638名無しさん@お腹いっぱい。01/12/07 21:07ID:???
初心者が自分を初心者と思わないほうが怖いぞ(w
0639名無しさん@お腹いっぱい。01/12/07 23:53ID:???
>>638 そういう意味じゃないだろ
0640名無しさん@お腹いっぱい。01/12/07 23:59ID:XnpIIJ1Q
ActivePerl 、win2000で使えません
0641名無しさん@お腹いっぱい。01/12/08 00:09ID:???
使えていますが何か?
0642名無しさん@お腹いっぱい。01/12/08 00:10ID:???
http://www.activestate.com/Products/Download/Get.plex?id=ActivePerl
使えるの?
0643名無しさん@お腹いっぱい。01/12/08 00:16ID:???
>>642
ちゃんと英語読め
0644名無しさん@お腹いっぱい。01/12/08 00:18ID:???
>642
それはシステムの要求項目だ、特に無しって事だから気にすんな
nextに進んでmsiかzipを落せ
0645名無しさん@お腹いっぱい。01/12/08 00:23ID:9GPXgj8m
馬鹿な質問すいませんでした。親切なレスありがとうございます。
0646名無しさん@お腹いっぱい。01/12/08 05:13ID:LmrHjtAG
#!/usr/local/bin/perl
sub func (\%);
{
my %hash = ( key => 'VALUE' );
func(%hash);# <--(先頭に & 記号無しの呼び出し)
}
sub func (\%) {
my $ref = shift;
print $ref->{key}, "\n";# VALUE
}

誰か、サブルーチンを呼ぶ時に &func(%hash); と
した途端、期待通り動かなくなる理由をオシエレ。

一週間悩んだ挙句、このスレの 100-200 あたりを読んで
解決はしたけど、やっぱ理解しないと気持ち悪いのヨ。
0647名無しさん@お腹いっぱい。01/12/08 05:40ID:D6XloJOW
プロトタイプは & を使わない呼び出しのみに作用するように
出来てるから、つまり仕様。ってことじゃダメ?
064864601/12/08 05:53ID:LmrHjtAG
>>647
あ、非常によくわかりましたです。
今までは、将来の組み込み関数やファイルハンドルと
重ならないように、全てのサブルーチンにつけてましたが
先頭で宣言しとけば、もし重なった時にはエラーが(多分)
出ますものね。ありがとうございました。

ちなみに文体は変わりましたが本物の 646 です。わらい。
0649名無しさん@お腹いっぱい。01/12/08 06:24ID:???
>636
専用のモジュールもあるんですね。
ありがとうございます。
0650名無しさん@お腹いっぱい。01/12/08 09:44ID:txIFSrN6
あの、質問です。
本当に初心者なんです。
FFFTPでCGIを転送するときのしくみ
でいい参考資料ありませんか?(汗)
ログありすぎて探したのですが
わかりません。。
0651名無しさん@お腹いっぱい。01/12/08 09:52ID:???
>>650
質問の意味が全然わかりません。
とりあえずもうちょっと勉強した方がいいような気はする。
http://tohoho.wakusei.ne.jp/www.htm
0652名無しさん@お腹いっぱい。01/12/08 09:57ID:???
>>650
RFC959
065365001/12/08 10:40ID:c8d0pxqG
ああ、スイマセンでした。。
日本語も勉強した方がいいみたいです、私。
CGIのアップロードの仕方がわかんないんですが。
0654名無しさん@お腹いっぱい。01/12/08 11:02ID:???
>653
http://www.google.com/search?num=100&hl=ja&q=FFFTP+CGI+%83A%83b%83v%83%8D%81%5B%83h&lr=
お好きなページをどうぞ。
065557201/12/08 14:46ID:4/I3dmD1
>>617様
ありがとうございます。
全て解決しました。
結論は・・・私がバグっていたからです。
while($line =~ m/.[\b]) {$line =~ s/.[\b]//;}
を行う位置を誤っていて、
自分でバックスペースをスペースへ変換してから
件の処理を行う様になっておりました。

という訳で、今後も精進致します。
0656名無しさん@お腹いっぱい。01/12/08 21:49ID:???
%HASHの中身を直接いじる方法無いかな
foreach(%HASH{keys %HASH}){ $_をいじる }
だと何も変わらないので
foreach(keys %HASH){$HASH{$_}= … }
ってコピーしてやってるんだけど,普通の配列を
foreach(@ARRAY){ … }
とやるみたいに直接中身を書き換える方法は無いの?
0657名無しさん@お腹いっぱい。01/12/08 22:02ID:???
>656
keyわからなくなるけどforeach (values %hash)とか
0658名無しさん@お腹いっぱい。01/12/08 22:22ID:???
each 使えってば
0659ほらよ01/12/08 23:13ID:???
//www.ultraman.gr.jp/~momiyama/Learning_Perl/reference.htm

eachやvaluesはダメよ
0660名無しさん@お腹いっぱい。01/12/08 23:23ID:???
和気和歌蘭(^∀^)
0661名無しさん@お腹いっぱい。01/12/08 23:29ID:???
>656
>>foreach(%HASH{keys %HASH}){ $_をいじる }
何をやりたいのか分からないです :-)
>>foreach(keys %HASH){$HASH{$_}= … }
コピーしてるとは? 一時配列を作りたくないって事?

だったら for(($key,$value)=each %HASH){if($key eq 'hoge')$HASH{$key}='...';}
なら一組のリストしか出来ないけど
>659
なんでリファレンス?
0662これの事かい?01/12/08 23:37ID:???
>Note that you cannot modify the values of a hash this way, because
>the returned list is just a copy. You need to use a hash slice for
>that, since it's lvaluable in a way that values() is not.
>
> for (values %hash) { s/foo/bar/g } # FAILS!
> for (@hash{keys %hash}) { s/foo/bar/g } # ok
0663名無しさん@お腹いっぱい。01/12/09 02:52ID:CTSZ1Ad/
すいません、>659のURLの「■ 多重ハッシュ(ハッシュのハッシュ)」のところを
見たんですが、

name1, email1, title1, comment1, …
name2, email2, title2, comment2,
name3, email3, title3, comment3,
…

という感じで、一度に複数投稿できるようなスクリプトを作りたいんです。
(掲示板じゃないんですが、例として)
それで、同ページの「多重ハッシュを動的に作成。」ってあたりをどう
書いたらいいんでしょうか。

%hatugen = (
res1 => { name => "name1の値",
email=> "email1の値",
title => "title1の値",
comment => "comment1の値",
},
res2 => { name => "name2の値",
email=> "email2の値",
title => "title2の値",
comment => "comment2の値",
);

と全部書いてやるるしか自分には出来なくて…。
0664こんな感じかにゃお01/12/09 04:09ID:???
$i=1;
for (<DATA>){
for(split(/,/,$_)){
($key,$value)=split(/:/,$_);
${hash{$i}}{$key}=$value;
}
$i++;
}
for $num (keys %hash){
print "\%{\$hash{$num}} are ... \n";
while (($key,$value) = each %{$hash{$num}}){
print "$key ----> ${$hash{$num}}{$key} \n";
}
}
__DATA__
name:name1,mail:email1
name:name2,mail:email2
name:name3,mail:email3

未テスト
0665名無しさん@お腹いっぱい。01/12/09 04:09ID:pYGvWQvh
上のカンマ区切りのやつはフォームから入力するんかい?それともファイル?
それによって違うんだけど・・・
あとね、この場合普通はハッシュのハッシュは使わない。
配列の配列の方が無難。つまり、
@hatsugen = (
[ "name1", "email1", "title1", "comment1" ],
[ "name2", "email2", "title2", "comment2" ],
. . .
)
って感じ。理由はメモリの節約。
で、
use constant NAME => 0;
use constant EMAIL => 1;
use constant TITLE => 2;
use constant COMMENT => 3;
ってやっておけば、
$hatsugen[0][EMAIL]で最初の発言のメールを取得できるでしょ。
enum モジュール使えばなお可。
http://search.cpan.org/search?dist=enum

#enum標準にしてくれないかな・・・
0666こんな感じかにゃお01/12/09 04:10ID:???
あ、ちょっと違うか、まぁ適当に直してくり
0667名無しさん@お腹いっぱい。01/12/09 04:52ID:???
>663です。回答ありがとうございます。

>665
>上のカンマ区切りのやつはフォームから入力するんかい?それともファイル?
フォームです。

>664 >665さんの回答を自分で試してみてから、
またレスします。 (適当に直せる自信ないけど…)
0668こんな感じかにゃお01/12/09 05:12ID:???
えっと、一応補足すると>665氏の言う通り多重ハッシュは効率悪いよ
つか俺も知らなかったけどListofListで列挙型使えるのイイ(・∀・)ね
あとシンボリックリンク恐怖症じゃなければ、単純に枝番ふった連装配列
ってのも有りかな・・・
0669名無しさん@Emacs01/12/09 11:56ID:???
Perl で、
ある画像(GIF,JPEG,PNG 等)の
幅と高さを取得できるようなスクリプツはできますか ?
0670名無しさん@お腹いっぱい。01/12/09 12:31ID:???
>>669
Image::Size
まだ、使ったことないけど、たしかこれで。
0671名無しさん@Emacs01/12/09 13:08ID:???
>>669
サンクスコ!!
0672名無しさん@お腹いっぱい。01/12/09 18:43ID:???
おまえに教えて損した
0673名無しさん@お腹いっぱい。01/12/09 19:43ID:???
名無しさん@Emacsって何処かの板の名無しさんですか?(スレッド違いすまん)
067467001/12/09 19:55ID:???
670 != 672
0675名無しさん@お腹いっぱい。01/12/10 15:59ID:???
根拠はあるのか?
0676名無しさん@お腹いっぱい。01/12/10 22:00ID:???
「もし条件Aならば処理Aをしなさい、あるいはもし条件Bならば処理Bをしなさい」を
if(条件A){処理A;}
elsif(条件B){処理B;}
と書く場合、

「もし条件Aでなければ処理Aをしなさい、あるいはもし条件Bでなければ処理Bをしなさい」は
unless(条件A){処理A;}
elsif(条件B){処理B;}
でよいのでしょうか?

現在、elsifを使うべきかわからない状態です
0677名無しさん@お腹いっぱい。01/12/10 22:05ID:???
>unless(条件A){処理A;}
>elsif(条件B){処理B;}
これ出来たっけ?(未確認)
否定文並べるか肯定文ならべるかはケース倍ケースdeath
if(条件A){処理A;}
elsif(条件B){処理B;}
は
if(条件A){処理A;}
if(!条件A 且つ 条件B){処理B;}
の略、省略したいから使うだけで悩む事じゃないでふ〜〜
0678名無しさん@お腹いっぱい。01/12/10 22:20ID:???
>676
試してみたら一発じゃん・・・。
俺は出来た。
0679名無しさん@お腹いっぱい。01/12/11 01:30ID:???
俺はif(!〜の方が可読性いいと思うな
0680名無しさん@お腹いっぱい。01/12/11 01:58ID:???
>>現在、elsifを使うべきかわからない状態です
elseの意味を調べてくれ
0681名無しさん@お腹いっぱい01/12/11 14:09ID:???
社内で使うアンケート集計フォームを作りました。
記入された内容をCSVファイルに追加書き込みしているのですが、
複数行入力を許しているテキストフィールドの内容を書き込む際、
改行コードが邪魔になってしまいます。

書き込む際に改行コードを強制削除したいのですが、
うまく消えてくれません。
$other=~ s/\n/<br>/g;
と他の文字列に置換してみたところ、
改行タグの後ろに結局改行コードが残ってしまいました。
($otherには入力内容が入ってます。)

サーバはNTで、perlのバージョンは5です。
何か良い方法はないでしょうか?
0682生厨房01/12/11 14:44ID:???
>>681
$other =~ s/\r?\n/<br>/g;

その処理の前に & < > も変換しとかないとね
0683名無しさん@お腹いっぱい01/12/11 15:08ID:???
>>682

ありがとう。
きれいなデータになりました。
ちなみに
\r?
にはどういう意味があるのですか?
0684生厨房01/12/11 15:17ID:???
>>683
Windows,Unix,Macの改行コードの違いを調べるといいよ
あとエスケープシーケンスも
0685名無しさん@お腹いっぱい01/12/11 15:27ID:???
>>684

了解しました。
世の中のPerlの本はUNIX前提になっているものが多いんですね。
次はLINUX+PHP+Postgresqlを勉強する予定なので、
またまた文字コードに悩まされそう。
0686名無しさん@お腹いっぱい。01/12/11 15:45ID:???
CGIってNULLってあるの?
それと文字数を数えるのってどうやるの?
aだと1、aaaだと3を返すやりかた。
0687名無しさん@お腹いっぱい。01/12/11 16:01ID:???
>686
http://pc.2ch.net/test/read.cgi/php/1000804655/854-855
奇遇だな。
ちょうど同じような質問を見かけたところだ。
0688名無しさん@お腹いっぱい。01/12/11 16:34ID:???
ちゃうよ。
abcでも3を返したいの。そこのリンクは1が帰ってくるでしょ。
0689名無しさん@お腹いっぱい。01/12/11 16:41ID:???
length()
069068801/12/11 17:03ID:???
それそれ。ども、ども。
0691名無しさん@お腹いっぱい。01/12/11 17:20ID:P2qcRNJ8
print <<"HTML";
<script language="javascript">
<!--
function javascript { 〜 }
// --> </script>
<form name="form1" onsubmit="return javascript()" action="">
<input type="text" name="abc"><input type="submit" name="button1" value="CHECK!">
</form><form name="form2" action="$scriptname">
<input type="submit" name="button2" value="XXXXX">
</form>
HTML
わけあってこうしなければならなくなった。
ようするに、form1で、入力された文字列を、javascriptで処理し、その処理結果を、perlで処理したい、という事。
もしかすると、HTML以前の問題かも。

心の広い方、教えてください。
0692名無しさん@お腹いっぱい。01/12/11 17:22ID:???
>691
マルチポストウザイ。
0693名無しさん@お腹いっぱい。01/12/11 17:26ID:P2qcRNJ8
ごめんなさい…
0694名無しさん@お腹いっぱい。01/12/11 19:28ID:???
>692
放置するか回答するの二者択一でお願いしまちゅ
0695名無しさん@お腹いっぱい。01/12/11 19:28ID:???
(放置|回答)
0696名無しさん@お腹いっぱい。01/12/11 23:31ID:???
放置か回答か?
マルチ野郎の思う壺じゃないか。
0697名無しさん@お腹いっぱい。01/12/12 00:04ID:1mlMOGo3
IPアドレスからホスト名への変換処理をしようとしています。

$addr = $ENV{"REMOTE_ADDR"};
$host = gethostbyaddr (pack ("C4", split (/\./, $addr)), 2);

この処理で、gethostbyaddr以下が良く分かりません。
$addrに格納されたIPアドレスの『.』を取り去った四つの数字をバイナリ化(?)
したものを・・・?
最後の2が何を表すのか、また他に使える数字にはどんな
ものがあるのか知りたいです。

それとgethostbyaddr関数ってpackとペアに使わなくちゃいけないものなんですか?
0698名無しさん@お腹いっぱい。01/12/12 00:33ID:???
Perlのgethostbyaddrは対応するシステムコールをするだけ
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/gethostbyaddr.3.html
>最後の2が何を表すのか、また他に使える数字にはどんな
定数AF_INETを指します、他に使えるすうじは有りません
>packとペア
勿論、自分でオクテット毎に255^n*xしてもらっても結構です
0699JAPU@ハーマイオニー萌え ◆JAPUTeX. 01/12/12 01:47ID:???
>>697

use Socket;
$x = gethostbyaddr(inet_aton("61.194.226.203"), AF_INET);

が吉。(inet_aton 使わないで、自分でpackしてもよいけど。)

AF_INET は環境によって異なる定数なので、数字で与えるのは移植性を低下さ
せます。(多分) 何でこんな面倒なことをしているかというと、ソケットって
のはIPv4に限らず、様々なプロトコルを使えるように出来ているからなんです。
アドレスファミリとしては、これ以外にも AF_INET6 などがあります。(環境
によっては無いけど。)

use Socket;
use Socket6;
$x = gethostbyaddr(inet_pton(AF_INET6, "3ffe:501:4819:2000:280:adff:fe71:81fc"), AF_INET6);
print "$x\n";

=> apple.kame.net と表示される。

# Socket6 は標準モジュールではありません。
0700名無しさん@お腹いっぱい。01/12/12 16:10ID:Mrx6ZMte
>>698
>>699
ここで質問しておきながら自分でも色々なサイトを捜してみて、なんとなくうす
ぼんやりと分かってきました。
あとは自分で色々試すだけ。

ありがとうございました。
0701名無しさん@お腹いっぱい。01/12/12 18:31ID:BvKUxJBs
libwww-perl-5.6.1のインストールについて質問

URI,MIME-Base64,HTML-Parser,libnet,MD5をインストールし,
make testでokが出たのですが,libwww-perlのmake testで
エラーが出ます../TEST -vすると以下の通り
, ./TEST -v live/validator.t
live/validator......No such field 'uploaded_file' at live/validator.t line 31
1..2
dubious

live/validator.tを見ると,
my $uri = "http://validator.w3.org/file-upload.html";
のフォームに書き込んでチェックをしている? みたいなんですが,
w3cの同ページが変更されて,みんなエラーが出ているんでしょうか?
0702名無しさん@お腹いっぱい。01/12/12 20:46ID:KPDzNand
*.htmをぜんぶ*.htmlに変えたのですが、a href=の指定がhtmの
ままになっちゃってます
フィルタプログラムではなく、ファイルを直接書き換えたいのですが
どうしたら良いのでしょう???
0703名無しさん@お腹いっぱい。01/12/12 21:06ID:???
>>702 ヘルプ見れ
0704JAPU@ハーマイオニー萌え ◆JAPUTeX. 01/12/13 01:12ID:???
>>701

うちは All tests successful. だけどなぁ。
libwww-perl-5.62 + Perl 5.005_03 on FreeBSD

>>702
perl -i -npe 's/href="(.+?\.htm)"/href="$1l"/g' *.html

とか? 文章中に href="puni.html" とかあったらそれまで置換しちゃうけど、
その辺は手作業で何とかして下さい。-i.bak とすれば .bak の拡張子がつい
たバックアップファイルがつくられます。
0705名無しさん01/12/13 02:14ID:???
term上でstdoutに出力した文字列を削除したい場合どうするんでしょうか?
なんかTerm::CapのTputs('dl'...)でやるみたいなんですが、どうやっても
うまくいきません。

print 'aiueo.'
と出力して、出力されたaiueoを削除する方法を誰か御存じないでしょうか。
0706JAPU@ハーマイオニー萌え ◆JAPUTeX. 01/12/13 03:02ID:???
どういう環境で、どう上手く行かないのか書かれていないので何とも言えない
けど、単に文字が消えるだけでカーソルがそのままなので困っているのなら

print $terminal->Tputs("dl", 1, undef);
print $terminal->Tputs("cr", 1, undef);

という感じ?

man termcap:

delete_line dl delete line (P*)
carriage_return cr carriage return (P*)
■ このスレッドは過去ログ倉庫に格納されています