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

【Perl】初心者コーナー Part12

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/04/27 23:17ID:1NNXdNsp
 
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

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

CGIの質問は【CGIだけどなんか質問ある Pert 6 】
http://pc.2ch.net/test/read.cgi/php/1019561283/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4 】
http://pc.2ch.net/test/read.cgi/php/1012839651/

過去ログ、その他の役立ち情報は>>2-10を見よう。
 
0720波兵02/05/17 16:06ID:???
>>718

ばっかもーん!それぐらい調べればすくわかることだろうが!!
今度そんな質問したらゲンコツだぞ!!
0721nobodyさん02/05/17 16:18ID:???
つーか何の便乗なのか謎。DQN?
0722nobodyさん02/05/17 23:00ID:???
>>714
お前の言葉づかいは素敵じゃないな。(藁
0723時雨02/05/18 22:28ID:T/2gJeJW
あのぅ・・・掲示板のフラットボタンありますよね?あれってどうやってるんですか?
0724nobodyさん02/05/18 23:38ID:???
>>723
掲示板のフラットボタン?こういうことですか?
<input type="submit" value="送信" style="border:solid 1px #000000">
これはスタイルシートつかってます。
Web制作板のCSSスレに載ってるサイト見て勉強してください。
0725nobodyさん02/05/18 23:41ID:???
>>723
たぶん平べったく見えるボタンの事だよね。それならスタイルシート。
border: 1px solid silver; とか。板違いなのでWeb製作板へ。
0726nobodyさん02/05/18 23:41ID:???
激しくカブタ(w
0727nobodyさん02/05/19 01:22ID:AQpyLtDP
関数の戻り値を、リファレンス使わずに、ハッシュで返したいんですけど、

sub a
{
 my %hash = (a=>0,b=>1,c=>2) ;
 return %hash ;
}

my %myHash = a() ;

こんな感じなんですけど、添削してくれませんか、ねた無しで・・・
0728nobodyさん02/05/19 01:36ID:???
>>727
それでいけるよ
072972702/05/19 01:45ID:AQpyLtDP
>>728
レスありがとう御座います、確認不足でした。
うまくいけてました。
0730nobodyさん02/05/19 08:13ID:???
ここでよく見かける質問で極簡単なソース晒して「結果」を求める質問あるが、
それはCGIの一部でローカルでテストする環境無いヤシが質問しているのか?
0731nobodyさん02/05/19 12:20ID:fEY33UPf
携帯で画面を自動で移動させるにはどうしたらいいでしょうか?
0732nobodyさん02/05/19 13:58ID:???
>>731
君はPerlを宝島か何かのように考えているのかね。
0733nobodyさん02/05/19 15:59ID:???
>>731
携帯では無理だよ
0734nobodyさん02/05/19 16:04ID:Y5d1n8OF
教えて下さい。
スクリプトを見られないように文字化けさせるやりかたがあるときいたのですが、
変換させる用にマクロメディアかマイクロソフトかで何かを
ダウンロードしてこないといけないと裏技の本に書いてあったそうです。
書店に本を探しに行ったのですが見つからず。もしご存じでしたら教えて下さい。
073572702/05/19 16:09ID:???
>>730
自分の事?、
あるよ、Vine Linux2.?と、Slackware8、WinじゃCygwinも
自分の今回の確認ミスは、結果のハッシュ構造の確認をDumoer使っていたため、
リファレンス先のハッシュは問題無く表示されるけど、
直接ハッシュ指定すると正しく表示してくれないみたい、
常識?
073672702/05/19 16:11ID:???
>>734
それは、Javascriptの話じゃない?
CGIの場合は、パーミッションをきちんと設定すれば、
見られる事は無いとおもうけど
0737nobodyさん02/05/19 16:18ID:???
=
073873402/05/19 18:53ID:81BFGvHe
>>736
すみません。
おっしゃるとおりJavascriptのことです。
ソースのJavascriptを文字化けさせて、読めなくする方法だとききました。
わかりますでしょうか?
0739 02/05/19 19:02ID:2IiQOx1u
動画アップローダーのスクリプトありませんか?
情報お待ちしてます。
0740nobodyさん02/05/19 19:11ID:???
>738
そこまでわかってんならスレ違い,というよりも板違い
0741nobodyさん02/05/19 19:24ID:F0t0o3W7
今あるCGIを作ってるんですけど、
(WINのユーザー・FREEBSD上のcgi)
HPでデバックするため、
読み込んだファイルを
¥r¥nを¥¥rに書き換えて処理して、
¥¥rを¥r¥nに直して
改めてファイルに書き込んでいます。

1回目はちゃんと処理するのですが、
2回目以降、¥r¥nを¥¥rに書き換えて処理の部分が実行されていないようです。

書き換えられたファイルも一見何も変わってないようなものはないので
八方ふさがりになっています。

ファイルを書き込むときに
BSD上で¥r¥nが何かに変更されているとかしか考えられません。
そのようなことは起こりうるのでしょうか?

074274102/05/19 19:39ID:F0t0o3W7
今バイナリで調べてみたのですが、
0D0Aが、0A0Aに変わってしまっていました。
でも、
s/\\r/\r\n/ig;

してるんですよね。
何でだろう。
0743734,73802/05/19 20:47ID:gBCciPdK
>>740
あああ、すみませんでした!
今気付きました!
ここは[Perl]の初心者コーナーだったのですね。
「初心者」という部分しか目に入ってませんでした。
申し訳ありませんでした。
0744nobodyさん02/05/19 20:48ID:???
>>741
俺がこれまで見た中で十指に入るひどい日本語だ… 意味不明。
0745nobodyさん02/05/19 21:01ID:???
¥¥rって
バックスラッシュと小文字の r ってこと?
なんでそんなことするのか理解に苦しみます。
0746nobodyさん02/05/19 23:48ID:688ScNbc
>>745
おそらく>>741の使ってるファイルには"\\r"がたくさん入ってるんだろう。
0747nobodyさん02/05/19 23:50ID:CPJQ1VYR
質問させてください、次のようにソートされた配列を
@list=(102,105,111,205,245,250,297,312,322,456,473,479,482,499);

こんなかたちに分解したいんですけど
@list1=(102,105,111);#----------頭が1
@list2=(205,245,250,297);#------頭が2
@list3=(312,322);#--------------頭が3
@list4=(456,473,479,482,499);#--頭が4

出来るだけシンプルにやりたいなぁと思ったわけです。
で初心者の僕ががんばって考えたのは
$i=1
foreach(@list){
 while($_ !~ /^$i/){#--$iの値を配列要素の先頭の数字とマッチするまで増やす
  $i++;
 }
 push(eval("\@list"."$i"),$_);#---新しい配列「@list+$i」に配列要素を追加
}
というもので、当然というか配列と変数をくっつけるevalが
効かなかったんですよね。
なんかよい方法はないものかと。
いっぱい間違ってるかもしれませんが、簡潔な方法があればよろしくおねがいします。
0748nobodyさん02/05/20 00:09ID:???
>>747
for (@list) {
die 'あほ' unless(/^(\d)/);
push @{"list$1"}, $_;
}
074974702/05/20 00:49ID:dmmb40il
>>748
大変短くして頂いてありがたいのですがエラーがでました。
スミマセン
0750  02/05/20 00:55ID:???
>>749
まさか>>748のをそのままコピペ(以下略
0751nobodyさん02/05/20 00:58ID:???
>>747

@list=(102,105,111,205,245,250,297,312,322,456,473,479,482,499);
foreach (@list) {
next if !/^(\d)/;
eval sprintf 'push @list%s,$_',$1;
}

print @list1,"\n";
print @list2,"\n";
print @list3,"\n";
print @list4,"\n";
<>;
075274702/05/20 01:00ID:dmmb40il
いや、なんか配列名に変数をくっつけるみたいな書き方のとこ
push @{"list$1"}, $_;
ココだけコピって使ったんですけどね
0753nobodyさん02/05/20 01:01ID:???
ソケットのことでついての質問です。
#!/usr/local/bin/perl
use IO::Socket;
use IO::Select;
@servers = ('www.zdnet.co.jp','www.asahi.com',);
print "Content-type: text/html\n\n";
foreach $server (@servers){
$socket = IO::Socket::INET->new(PeerAddr => $server,
PeerPort => 80,
Proto => 'tcp',
);
print $socket "GET /index.html\r\n";
print $socket "Host: $server:80\r\n";
$socket->flush();
print <$socket>;
}
これでページを取得出来るんですが、
ページを全部読み込んでしまいます。
これを一部のみ読み込むにはどうすればいいのでしょうか?
と、、、
print <$socket>;
これを変数にあてはめて表示するにはどうすれば、、、。
075474702/05/20 01:01ID:???
あ、何か751さんが新しい答えくれてる、ちょっとこれ試してみます。
075574702/05/20 01:05ID:???
うわ、スゲエ、出来た!
でもよーわからん、、、
ノートに書き写して後でゆっくり考えてみます。
ありがとう!
0756nobodyさん02/05/20 01:11ID:???
747たんは多次元配列知らないのでちゅか?
0757nobodyさん02/05/20 03:17ID:???
>>1-756マイナス753番
糞
075874102/05/20 05:06ID:VDOXGDf5
>>745
実際、\r・\r\n(あと\t)がどのような状態で入っているのか
cgiのコンソールで書かせて、HPに表示させるためです。
ただ長いスペースが空いているのではわからないので、
表示できる形に直しているのです。

>>746
そのとおり。XMLソースを加工しています。

問題をはっきりするため、読みこんだ$ファイルを
$a=~s/\r\n/\\r/ig;
$a=~s/\t/\\t/ig;
##デバック
$a=~s/\\r/\r\n/ig;
$a=~s/\\t/\t/ig;
して書きこんでいるだけなのですが、
書きこみ前と後のXMLファイルをVCでバイナリで開いてみると、
どうやら0D0Aが0Aに変わってしまっているようなのです。

何が問題なのでしょうか?
0759関係ないけど02/05/20 05:30ID:???
cgiのコンソールってなんでちゅか?
s///になんでiを付けてるのでちゅか?
デバッ ク ってなんでちゅか?
<pre>じゃだめでちゅか?
表示させるために置換したものを、なんで再びファイルに書くのれちゅか?
0760あとね02/05/20 05:36ID:???
バックスラッシュはエスケープさせないのれちゅか?
0761nobodyさん02/05/20 08:46ID:???
>>758(>>741)
呆れるほど突っ込みどころ満載なんだがとりあえず一つ。
binmode(FILEHANDLE)使って見れ。
0762とんちんかん02/05/20 14:27ID:827vrQS8
Perl を使ってあるWin2kのログ ファイルから必要な情報を別のテキスト ファイルに抽出
してるんですが、ちょっとした理由でこのログ ファイルが Unicode 形式になってしまいまいた。
でこのスクリプトで読み込んでみたら案の定白紙のテキスト ファイルを作ってくれました。
Perl で UCS2 のファイルの読み書きってできるんでしょうか?
Jcode.pmとかって使うんですか?
教えて君ですみません。
0763nobodyさん02/05/20 16:08ID:???
>762
yes.
0764nobodyさん02/05/20 20:31ID:???
すみません。勉強したての超初心者ですが、下の場合どのように書けばいいのでしょうか。
例えば
a==bで尚且つcの場合"あいうえお"を返す。a==bで尚且つcで無い場合"アイウエオ"を返す。
a==bでなかったら"123"を返す。それ以外は"---"を返す。

それで

if(a==b){if(c){z="あいうえお"}else if{(c){z="アイウエオ"}
}
else if{(a!=b){z="123"}
}
}
else{z="---"}

だと、当たり前のようにエラーになります。教えて君ですみませんが皆さんの力を貸して下さい。
0765 02/05/20 21:05ID:???
s/[a-z]+//;

とか正規表現にマッチした部分が格納される変数の名前ってなんでしたっけ?
0766nobodyさん02/05/20 21:08ID:???
>>764
もし $A eq $B かつ $A eq $C のとき $Z="あいうえお";
そうじゃなくて $A eq $B かつ $A ne $C のとき $Z="アイウエオ";
そうじゃなくて $A ne $B のとき $Z="123";
それ以外のとき $Z="---";

if && elsif else
0767nobodyさん02/05/20 21:32ID:???
>>765
とうとうこんな質問まで出るようになったか・・・。
検索もできないクズはプログラミングなどやるな。
0768nobodyさん02/05/20 21:34ID:???
>>764-765
おい、流石にLV低すぎだろ。ネタだとしても酷すぎる。
0769nobodyさん02/05/20 21:38ID:yMovYRK1
Image::Magick を使って画像の切り出しをやろうと思います。

$img = Image::Magick->new;
$img->Read( $file );
$img->Crop( $w, $h, $x, $y );
$img->Write( $file2 );

とやることで一ヶ所の切りだしはできるのですが、
格納している画像をカットしてしまうので、部分コピーするか、
元画像をコピーしようと思います。

ループの中に
$img2= $img->Clone;

を入れて、 $img2 に対して処理を行うことにしましたが、
Cropが有効にならなかったり、前回と同じ位置が吐き出されたりと
うまくいきません。

指定範囲を別の変数にコピーして、そこから書き出すということを
やりたいのですが、どのようにしたらいいでしょうか?
077076902/05/20 22:08ID:???
>>769
原因わかりました…。
単に座標の指定を間違えているだけでした…。
0771長瀬 愛02/05/20 22:16ID:95UXUtUe
>>764
カッコの数があわないのではないか。
それはともかく、この判定条件ではz="---"の文には
至らない気がするがまあいいや。

if(a==b){
if(c){
z="あいうえお";
}else if(c){
z="アイウエオ";
}
}else if(a!=b){
z="123";
}else{
z="---";
}


>>768
グレシャムの法則というのがあってね以下略
0772nobodyさん02/05/20 22:17ID:???
elsif
0773771 長瀬 愛02/05/20 22:30ID:95UXUtUe
perlスレだった。
くどいけど旅の恥はかきすて。

if($a==$b){
if($c){
$z="あいうえお";
}elsif($c){
$z="アイウエオ";
}
}else{
$z="123";
}
0774 02/05/21 00:24ID:???
>>767
初心者は何がわからないかもわからなくて、検索もできません。
答える気がねーなら、煽ってんじゃねーヴォケが
ここは”一応”初心者スレなんだから。


オレモナー。
0775nobodyさん02/05/21 02:20ID:iePDZE0b
すいません、Perlの質問ではなく申し訳ないのですが、CGIの呼び出し方で一つ質問があります。
SSI/.htaccessが使用できないサーバ上にPerlで作成した単純なテキストを返すCGIをアップロードしました。
IEのアドレスエディットボックスに直接CGIのアドレスを入力すると正常動作しています。
これをindex.htmlがロードされると同時に読み込みたいのですが
CGIの参考書に載っている<!--exec cmd="hoge.cgi"-->や<img src="hoge.cgi">の呼び出し方が出来ません。
この他にindex.htmlと同時にhoge.cgiを読み込む方法がありますでしょうか?
0776nobodyさん02/05/21 02:53ID:???
>>775
JavaScriptで飛ばすとか。
0777nobodyさん02/05/21 02:58ID:OppOtViG
>>775
「SSI/.htaccessが使用できないサーバ」ですから
<!--exec cmd="hoge.cgi"-->
は使えません。

「単純なテキストを返すCGI」ですから
<img src="hoge.cgi">
はイメージデータが返さなければ意味がないです。

<script src="hoge.cgi"></script> で呼び出して、
ソースを下記のように javascript に書き換えましょう。

$text = "出力する文字列";
print "Content-type: text/plain\n\n";
print "document.write('$text')\;\n";
exit;
077877502/05/21 03:11ID:iePDZE0b
776さん、777さん
ご丁寧なレスありがとうございました。
早速試してみます。m(__)m
0779nobodyさん02/05/21 03:36ID:???
(´-`).。oO(>>775 JavaScript 常時 OFF な人には見えないね…)
0780nobodyさん02/05/21 03:53ID:1dGqnG5G
質問なんですが、携帯からなので、ログ参照、検索は勘弁願います。

学内BBS作ってるんですが、全員同じプロクシなので、
ほかに手っとり早く個人識別する方法はありますでしょうか。
0781nobodyさん02/05/21 04:01ID:???
>>780
(1)全員に固有のIDとパスワードを配布する。
(2)書き込みは係りの人に紙に書いて手渡しにする。
(3)自分だけ書き込み出来るようにすれば、おそらく書き込んだのは君だ。
(4)名前を書かせ、それを信じる。
078277502/05/21 04:04ID:iePDZE0b
>779さん
試して見ましたが、どうやらそのようですね。
ASAHIネットがCGIのβサービスを開始したからCGIの勉強を始めようとしたのですが・・・
うーん、他の人達は一体どのように対応しているのかなぁ???
もう少し調べて見ます。
ご指摘ありがとうございました。
0783nobodyさん02/05/21 04:09ID:???
>>782
イメージデータにして<img src="hoge.cgi">すれば?
0784nobodyさん02/05/21 04:11ID:1dGqnG5G
>>781
うーん、2chのIDみたいなのとかつけたら
面白がると思うんだよね。

5) 300カ国の人間が300人自分の言語で書く。
0785nobodyさん02/05/21 04:57ID:???
(´-`).。oO(>>784 全員同じ串なら、リモホも同じだよね?よって、IDも同じになると思うが?…)

あ、非匿名串とかは別ね
0786nobodyさん02/05/21 06:14ID:???
普通のPerlとアクティブパールの違いだってなんですか、
今度IISでPerl使うんですけど、選択に迷ってまして、
どんなもんでしょ?
0787nobodyさん02/05/21 06:22ID:???
(´-`).。oO(>>786 名前が違う…)

ドキュメントぐらい読めよ。ヴァカwin房
078878602/05/21 06:34ID:???
>>787
しゃべんなって。
0789nobodyさん02/05/21 09:32ID:???
>>788
最近この手のアフォよく見るな。たいした質問内容でもないくせにやたら偉そうだな

↓はい、次の方どうぞ
0790nobodyさん02/05/21 10:59ID:???
Perl → 言語名
ActivePerl → 処理系名

ですよ。
0791nobodyさん02/05/21 11:05ID:???
>>787 >>789
煽りなら他でやっていただけますか?
邪魔です。
0792nobodyさん02/05/21 11:52ID:???
>>791おまえも邪魔だ。いちいちレスするなって。
0793nobodyさん02/05/21 12:47ID:???
>>785
だからIP.リモホ以外で個人を識別する方法を…
0794nobodyさん02/05/21 13:04ID:???
掲示板などでhttp://〜から始まるURLに自動でリンクしたいのですが、
どうしてもうまくいかない箇所があるのでどなたか教えてください。

書き込まれる本文を「$message」としたとき、
$message =~ s/(http:\/\/[ほげほげ]+)/<a href=\"$1\">$1<\/a>/ig;
こんな感じになると思うんです。

そこで、
$message =~ s/(http:\/\/[\w\.\,\/\~\-\+\=\#\%\&\?\(\)]+)/<a href="$1" target="_blank">$1<\/a>/ig;
こういう記述でやってみました。

ところが、どうしても以下のような「,」が続くURLや、
ttp://k-tai.impress.co.jp//cda/article/news_toppage/0,,9441,00.html
以下のような「&」が入るときに、URLのリンクがそこで途切れてしまうのです。
ttp://news.lycos.co.jp/company/story.html?q=20bloombergki1580637&cat=10

試行錯誤してみたのですが、詰まってしまいました。
どなたか教えて頂けませんか?
0795nobodyさん02/05/21 13:50ID:???
>>794
http://www.din.or.jp/~ohzaki/perl.htm#httpURL
079679402/05/21 14:21ID:???
>>795
参考にさせて頂きます。
実は結構難しいんですね…。
0797とんちんかん02/05/21 14:30ID:+ltjKcZF
すいません。
Jcode,pMの実装例がみたいのですが、サンプルどこかにないでしょうか。
けっこうしつこく検索してるんですが。。。

UCS2をよみこむスクリプトつくりたいのdせうが。
0798nobodyさん02/05/21 14:34ID:???
エディタスレに載ってたんだけど
DzSoft Perl Editorは良さそうだね。
(ただし、フリー版は行数制限あり)

http://www.dzsoft.com/dzperl.htm
0799nobodyさん02/05/21 16:11ID:???
サーバの起動状況を見ようと思っています。

最初はSocketを使って、レスポンスが帰ってきたらUpというようにしていましたが、
性質上どうも動作が重いので、代わりにpingで見ようとしましたが、全然資料が無くてよくわかりません。

どなたかご教授願います。
0800800?02/05/21 16:21ID:???
Socketでファイル取得して、保存しようと思うのですが画像ファイルなどがうまく保存できないんです。
普通のテキストファイルはちゃんとできるのですが。
有用なリンクなどがあれば教えていただきたいです。
0801nobodyさん02/05/21 16:44ID:???
binmodeってオチですか?
0802nobodyさん02/05/21 16:50ID:???
>>801
binmodeは多分やってるはずですが・・・。
以下ソースです。
$addr = (gethostbyname("www.2ch.net"))[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 /back.jpg HTTP/1.0\n\n";
open(A,">>back.jpg");
while (<S>) {print A;}
close(A);
close(S);
0803nobodyさん02/05/21 17:13ID:???
binmode(A)だし、<S>に何がかえってくるかコンソールで確認した?
ダメすぎです。
0804nobodyさん02/05/21 17:37ID:Eo1hAg2d
$target =~m/ー/;

"ー"は日本語のハイホン

これが走らないのですが、ーはできないのですか?
0805nobodyさん02/05/21 17:41ID:???
このスレは
【Perl】FAQを敢えて質問するネタ心者コーナー
に変更されますた。
0806nobodyさん02/05/21 18:08ID:???
ハイホン
http://www.google.co.jp/search?num=100&hl=ja&safe=off&q=%83%6E%83%43%83%7A%83%93&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
ハイフン
http://www.google.co.jp/search?num=100&hl=ja&safe=off&q=%83%6E%83%43%83%74%83%93&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
ハイプン
http://www.google.co.jp/search?num=100&hl=ja&safe=off&q=%83%6E%83%43%83%76%83%93&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0807nobodyさん02/05/21 18:18ID:???
ヒロポン
ttp://www.warbirds.nu/heiki/42000.htm
0808nobodyさん02/05/21 20:48ID:???
>>803
んーいまいちよくわからんです。。
0809nobodyさん02/05/21 22:04ID:???
>808
参考サイト(http://x68000.startshop.co.jp/~68user/)
書き出すファイルのファイルハンドルもbinmodeにしてね。
それとHTTPの応答は邪魔だから捨てると。
IO::SocketやLWPもチェック。
================================
use Socket;

$port = getservbyname('http', 'tcp');
$iaddr = inet_aton("www.2ch.net") or die "www.2ch.netは存在しないホストです。\n";
$sock_addr = pack_sockaddr_in($port, $iaddr);

socket(SOCKET, PF_INET, SOCK_STREAM, 0) or die "ソケットを生成できません。\n";
connect(SOCKET, $sock_addr) or die "www.2ch.netのポート$portに接続できません。\n";
select(SOCKET); $|=1; select(STDOUT);
binmode(SOCKET);

print SOCKET "GET /back.jpg HTTP/1.0\r\n";
print SOCKET "\r\n";
while (<SOCKET>){
    m/^\r\n$/ and last;
}

open(FH, "> tmp.jpg");
binmode(FH);
while (<SOCKET>){
    print FH $_;
}
close(FH);

0810nobodyさん02/05/21 22:04ID:???
>>806暇人
0811nobodyさん02/05/21 23:11ID:???
>>810ハイホン
0812nobodyさん02/05/22 00:59ID:???
>>811ハイプン
0813nobodyさん02/05/22 09:31ID:???
勢ぞろいだな
0814nobodyさん02/05/22 11:42ID:o5bpVYAL
length($value)のように
配列のサイズを求めたいのですが、length(@arry)や(-s @arry)で取れません。
サイズを求める記述を教えてください。
0815nobodyさん02/05/22 12:29ID:TrskWj5V
>>814
foreach (@arry){$length = length;}
0816nobodyさん02/05/22 12:30ID:???
>>814
配列をスカラーコンテキストで評価すると要素数になります。
my @array = 0..99;
my $c = @array;
print $c;

それともこういうこと?
my @array = 0..99;
my $length = 0;
map { $length += length } @array;
print $length;

どちらにしろまともな参考書を読むのをお勧めします。
0817nobodyさん02/05/22 14:29ID:FKXAo2H1
$length=$#array_name;
0818nobodyさん02/05/22 14:31ID:FKXAo2H1
ちなみにハッシュは、
$length=keys %hash_name;
0819nobodyさん02/05/22 14:34ID:dip8mLbF
DBMファイルに、配列を格納したく、

use MLDBM 'GDBM_File';
tie (%db, 'MLDBM', 'data.pag', O_CREAT|O_TDWR, 0644) || die;

としましたが、
MLDBM:error Second level tie failed 'ファイルもディレクトリもありません'
と出て止まってしまいます。
スカラーを格納する時は、use GDBM_File ですぐできたのですが、
このエラーの原因が解りません ;;
Diedは上記エラーの次に出ます。MLDBMは最新です。
どなかた勘所の解る方、ヒントでも教えていただけませんか。 よろしくお願いいたします。
0820nobodyさん02/05/22 14:35ID:LbPQIjeD
CGI上で
Content-type: text/html\n\n
書いて、HTMLを表示したものを、処理の終わりがけに消して
Location: jump_url\n\n
したいのだが、どうすればいいのれすか
■ このスレッドは過去ログ倉庫に格納されています