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

【Perl 】初心者コーナーPart7

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

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

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

参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://corn.2ch.net/test/read.cgi?bbs=php&key=988809842&ls=50
CGIの質問はこちら【CGIだけど、なんか質問ある?part3】
http://corn.2ch.net/test/read.cgi?bbs=php&key=988727833&ls=50

過去ログ、その他の役立ち情報は>>2-5を見よう。
055855501/10/03 20:12ID:???
>>557 は間違い。s///ge; じゃなくて s///g; でした。
055954401/10/03 20:12ID:???
>>555
重ねてありがとうございます。
早速、参考にさせていただきます。
まだまだ勉強せねばです・・
0560丸出し01/10/03 20:34ID:???
なるへそ〜〜〜。
indexのが早いんですか!
ある配布cgiで検索機能があったんですけど
半角全角を一緒にして検索できる便利さを捨てて
鯖の負荷を減らす方をとったのか。
なるへそ〜〜。ありがとです。
0561名無しさん@お腹いっぱい。01/10/03 20:50ID:VH/5AUng
ローカルでANHTTPとActivePerlで色々やっている者ですが
REMOTE_HOSTをgethostbyaddrでIPからアドレスに変換したのですが
変換するとpop3.norton.antivirusと表示されます。
これって何でしょう?間違ってはないと思うのですが…
識者の方でご存知のかたおられましたらお願いします。
0562名無しさん@お腹いっぱい。 01/10/03 20:59ID:???
悩豚のローカルプロクシだろ、
気にスンな
気になるならセキ板でもいって「ハックされていますっ!!!!」
ってスレ立てて死んでこい  w
0563名無しさん@お腹いっぱい。01/10/03 22:33ID:???
$xxx はPerlで幾つか用意されているグローバル変数と
言う意味で書いています($で始まるの色々ありますよね)。
0564名無しさん@お腹いっぱい。01/10/03 22:43ID:???
だから無いって。
0565名無しさん@お腹いっぱい。01/10/03 22:53ID:???
素直にfor使えば?
そのためのやつでしょ。
0566名無しさん@お腹いっぱい。01/10/03 23:37ID:CQyY2Ec6
全くの初心者で、初心者ならPerlと薦められてきた者ですが、
Perlで定期的に送信フォームを押すみたいなことはできますか?
つか、初心者はその前にこれ覚えれみたいなことありましたら指摘お願いします。
0567名無しさん@お腹いっぱい。 01/10/03 23:38ID:???
答え:
まず日本語を勉強してね &heart
056856601/10/03 23:43ID:???
>>567
意地悪しないでお願いします。
どこかおかしな日本語があったでしょうか?
0569not 56701/10/03 23:49ID:???
>>566
> 初心者はその前にこれ覚えれみたいなことありましたら指摘お願いします。

質問の仕方
0570名無しさん@お腹いっぱい。01/10/03 23:50ID:???
>566
>>1周辺を見ろ。
方言使うな。
057156601/10/03 23:54ID:???
>>569
勉強して出直してきます・・・
0572名無しさん@お腹いっぱい。01/10/03 23:59ID:???
厳しいなぁ(笑
ちょっと漠然としすぎてて答えようが無いよ
この板に良書スレが有るから、そこを良く読んで自分に合った
本を一冊買って下さい。
で、それを読みながらWEBなんかも活用して勉強すればいいよ。
それといきなりCGIは薦めないな、、少しはPERL書けるようになって
HTMLも書けるようになれば自然と書ける様になるから
057356601/10/04 00:21ID:???
>>572
ありがとうございます。
全然右も左もわからないもので・・・
以前age荒らしをスクリプト組んでやってる、というのを見て、
プログラミングに興味を持ったのですが、(荒らしをしたい訳じゃないんです。断じて)
例えは悪いですが、そういうことはできるのか知りたかったんですが、
これでもまだ漠然としているんでしょうかね・・・
とりあえず、勉強して出直してきます。有り難う御座いました。
0574名無しさん@お腹いっぱい。01/10/04 00:24ID:???
おう、頑張れよー
0575名無しさん@お腹いっぱい。01/10/04 00:30ID:???
ま、あれだな。ゲーム作りたくなってプログラミングに興味もったけど、案外難しくて挫折な厨房もいるしな。
関係ないけどね。頑張ってね。
057651001/10/04 02:08ID:f1gid5yY
>>518
えびさん
遅くなりましたが、詳しいお答えありがとうございました。

・・・精進します・・・。
0577名無しさん@お腹いっぱい。01/10/04 08:23ID:9Z2wk3j2
向上心のない善人よりも、
明確な目標を持った厨房のほうが好きだね。俺は。
つーわけで>>566みたいな奴には期待したい。

(1)ローカルマシンにPerlとWebサーバを入れる。
(2)全環境変数表示CGIを自作し、Webサーバで動かす。
(3)GETメソッドで(2)のCGIにアクセスしてみる(LWP::Simpleモジュールが便利)
(4)POSTメソッドで同じく(2)にアクセス(LWP::UserAgentモジュール)
とりあえ、以上の実験を試してみることをすすめる。
0578名無しさん@お腹いっぱい。01/10/04 08:41ID:???
>>537,>>563
残念賞として"$."(現在の行番号)をあげよう。

while (<DATA>) { print "$. $_"; }
__DATA__
mona
giko
057950901/10/04 09:10ID:???
>>515,554
有難うございます。Apache for win32入れてやってみます。
0580名無しさん@お腹いっぱい。01/10/04 11:35ID:nOAoqb9A
CGIで、呼び出し元のURLを知りたいのですが。
HTMLA → CGI の、HTMLAのURLです
0581名無しさん01/10/04 11:37ID:???
リファラを読む
0582名無しさん@お腹いっぱい。01/10/04 13:23ID:nOAoqb9A
CGIモジュールのrefererでよいのでしょうか。>>581
空白になっちゃうんです。うううむ。
0583名無しさん@お腹いっぱい。01/10/04 13:28ID:???
単純に%ENVから読むのはどうよ?
0584580/58201/10/04 14:10ID:???
別の環境でやったらうまくいきました。
ありがとうございました>>581 >>583 さん
0585名無しさん@お腹いっぱい。01/10/04 15:33ID:???
>>557の正規表現って全然だめじゃん!
てか、えらそうに書いたの俺なんすけど。
正規表現スレ逝って修行してきます・・・。
0586名無しさん@お腹いっぱい。01/10/04 16:14ID:???
perlで、いわゆるdiv演算子に相当する演算子って何ですか?
9 div 4 = 2
9 mod 4 = 1
のdivです。
0587名無しさん@お腹いっぱい。 01/10/04 16:31ID:???
int (9/4)   笑っ
0588名無しさん@お腹いっぱい。01/10/04 16:33ID:???
9%4    笑笑っ
0589名無しさん@お腹いっぱい。01/10/04 16:52ID:4x063qa6
publicフォルダ外の、ブラウザからはアクセスできない場所にあるファイルに
Perlからアクセスすることは可能でしょうか?
出来る場合、相対パスでアクセスするのでしょうか??
0590名無しさん@お腹いっぱい。01/10/04 16:55ID:???
>>587 >>588
あ。divはないんですね。
%があるのに変だなぁと思って探してたんです。

#9-(9%4)とかやってたですよ。鬱。int()でいいんだ…
0591名無しさん@お腹いっぱい。01/10/04 17:41ID:???
整数計算を多用するときはintegerプラグマ使うと楽っぽい。
いまいち動作がわかってないんだが。

{ use integer; $foo = 9 / 4; }
または
use integer; $bar = 9 / 4; no integer;
0592名無しさん@お腹いっぱい。01/10/04 17:44ID:???
>>589
可能である。
相対パスでも絶対パスでも。ただしURLじゃなくてOSのパス。
0593名無しさん@お腹いっぱい。01/10/05 00:35ID:???
.pl と .pm の違いが良くわかりません。それぞれどういう長所があるのでしょう。

my と local の違いが良くわかりません。どう使い分けるべきなのでしょう。
0594名無しさん@お腹いっぱい。01/10/05 05:47ID:???
>>593
一口には説明できないけど、まず".pl"と".pm"の表面的な違い。

●Hoge.plファイル
require 'Hoge.pl'; で読み込む。
実際はどんな拡張子でもいいが慣例として".pl"が使われる。
requireでは、この命令を実行する時点でファイルが読み込まれる。
必要なときのみrequireするようにうまくコードを書くと
無駄なメモリを使わずにすむ。

● Hoge.pmファイル
拡張子".pm"の扱いは特別で、
use Hoge ('mona','giko'); と書くのは、
BEGIN{ require 'Hoge.pm'; Hoge->import('mona','giko'); }
と書くのと同じ。
BEGINブロック相当なので、コード中のどこにuse Hogeを書いても
Hoge.pmは起動時に必ず読み込まれる。
決して実行されない位置、たとえばif (0) { use Hoge; } でもね。
さらに自動的に実行されるHoge->import()を利用して各種の初期設定が可能。
importメソッドをどう使うかは自由だけど、普通はHogeクラスを
メインプログラムから簡単にアクセスするための設定とかを書く。

#まだ言ってることワケワカだろうけど、そのうちわかる。
0595名無しさん@お腹いっぱい。01/10/05 11:28ID:QBNm.OW.
シフトJISのテキストを処理して、UTF-8で出力したいのですが、
どのようにしたら良いでしょうか。
また、ゴミデータ(エディタで表示できないような文字)の
判別方法はありますか?
0596名無しさん@お腹いっぱい。01/10/05 11:44ID:Cx9AZXvI
>>595
Jcode.pmを入手して使うと楽。
日本人が作ったやつだけど、CPANにあるっけ?調べてみて。

use Jcode;
my $s = "まあ聞いてくれよ、スレと関係あるからさ。\n";
print Jcode->new(\$s, 'sjis')->utf8;

何がゴミデータかというのはエディタにもよるから。どのエディタ?
059759601/10/05 11:46ID:???
Jcode.pmをインストールするにはCコンパイラが使える
環境でないとだめだったかも。。。
Windows用ならコンパイル済みのやつがある。
0598名無しさん@お腹いっぱい。01/10/05 11:51ID:???
>>592
c:/bin/
こんなの?
0599名無しさん@お腹いっぱい。01/10/05 12:32ID:???
>598
そんなの。unix系は"c:"なしで。
0600名無しさん@お腹いっぱい。01/10/05 13:07ID:QBNm.OW.
>>596 ありがとうございます!

ゴミデータってのは、制御コードのようなものとか、
文字コードが判別できないような「F・カ」みたいに表示されて
しまうものとか。そういったデータのことです。
エディタによって表示が違うのはその通りですね(^^;
0601名無しさん@お腹いっぱい。01/10/05 18:48ID:???
$data = 'hogehogeMicro$ofthogehoge';
$hash{'Micro$oft'} = "VVindovvs";
foreach(keys %hash) {
$data =~ s/$_/$hash{$_}/;
}
print $data;

この場合 "Micro$oft" に含まれる "$" がパターンと見なされて
うまく置換できません。どのような回避方法が考えられるでしょうか?
自分ではパターン文字列でメタ文字と見なされてしまう文字列を
あらかじめエスケープする置換処理を挿入しているのですが
あまりスマートとは思えません。

パターン部の変数展開を一度だけ行ってくれるといいんですが。
「o」では期待した動作が得られませんでした。
0602名無しさん@お腹いっぱい。01/10/05 18:51ID:???
\Q$_\E
0603名無しさん@お腹いっぱい。01/10/05 19:22ID:???
ハッシュキーが少なければ"|"でつなげた正規表現を最初に作っておくのもありだな。

$data = 'hogehogeMicro$ofthogehoge';
%hash = ( 'Micro$oft' => "VVindovvs", 'hoge' => '[ピー]' );
$re_keys = join('|', map { "\Q$_\E" } keys(%hash));

$data =~ s/($re_keys)/$hash{$1}/go;
print $data;
0604名無しさん@お腹いっぱい。01/10/05 23:37ID:QBNm.OW.
>>600
Jcodeをppmでインストールしようとしたら
>Installing package 'Jcode'...
>Error installing package 'Jcode': Read a PPD for 'Jcode',
>but it is not intended for this build of Perl
>(MSWin32-x86-multi-thread)
というメッセージが出てきてしまいました。バージョン違い?
CPAN逝ってきます。
0605名無しさん@お腹いっぱい。01/10/06 00:32ID:MEgHrhMk
>>604
うわーん。

http://search.cpan.org/search?dist=Jcode
>FAIL MSWin32-x86-multi-thread

ってのはWinはダメの意でしょうか。かなりしょんぼり。
0606名無しさん@お腹いっぱい。01/10/06 00:47ID:???
>>605 続き
すみません。
http://openlab.ring.gr.jp/Jcode/index-j.html
にありました。
0607名無しさん@お腹いっぱい。01/10/06 08:38ID:xcBMND.s
ファイルに記録する時、1人(グループ)に関する複数の
データを記録する時の区切り文字には定番だったり
慣例のものとかってあるんですか?
よく目にするのが<>だったり\tだったりしますが?
教えてくらはい。
0608名無しさん@お腹いっぱい。01/10/06 10:51ID:32vtXsHY
自分のPCはWindowsなんですが、perlを書くときに
UNIXみたいに#! /usr/local/bin/perl(コマンドライン?)
というのを使える様にするにはどうすればいいんでしょうか?
ちなみに、perlソフトはActive Perlです。

教えて君初心者ですみません。。
0609名無しさん@お腹いっぱい。01/10/06 10:56ID:???
>>607
エクセルとか意識するならCSVは忘れない方がいいんじゃないかな
\tはTSVって言ってCSVの親戚みたいなもんか。。
<>が使われるのは多分BBSとかのログは大抵タグがエスケープされてる
から、デリミタ混入→ミスヒット、の可能性が低くなるからだと思う
0610名無しさん@お腹いっぱい。01/10/06 11:09ID:xcBMND.s
>デリミタ混入→ミスヒット、の可能性が低くなるから
なるほど!<>にはそういう意味があったんですか!
どうもありがとうございます。
TSVってのは知りませんでした。
メモ帳とかで開くとタブで区切っとけば
見やすいからだと思てた・・・。
0611名無しさん@お腹いっぱい。01/10/06 11:10ID:???
>>608
入手にちょいと苦労するがむっちゃ便利なプログラムがある。
ベクターで「SOS」を検索してみ。
0612名無しさん@お腹いっぱい。01/10/06 11:28ID:xcBMND.s
http://www.vector.co.jp/soft/dos/util/se028129.html
これの事ですかね?
PERLで書いたスクリプトをcなんかの様に実行形式に
コンパイルできるソフトって無いものですか?
あるにはあるけど正確じゃない。みたいな事は耳にするのですが?
どうなんでしょう?
0613名無しさん@お腹いっぱい。01/10/06 14:14ID:???
>>608
Cygwin入れたらいい

これで一件落着
061460801/10/06 17:41ID:PN8fPnr6
>>613
それを入れたら良いとか本に書いてあったんですが
ダウンロードサイトに行ってみたら、どうやら金取られるみたいで..
611さんの言うのもダウンロードしたのですが
どうやってパッチを当てるかいまいちわからなくて..。

ほんと、難しいですよね...鬱
0615名無しさん@お腹いっぱい。01/10/06 18:51ID:???
Cygwin有料になったのか?  笑
もっと健作白〜〜〜
何をそんなに焦っているのか? 今日納期の仕事してる訳じゃ無いだろ
実際Unixのshellに触る事は回り道でもなんでも無いんだぞ
って9xで使えたかな (・∀・;)??
0616名無しさん@お腹いっぱい。01/10/06 19:46ID:???
>>614
http://cygwin.com/setup.exe
これ落とせ
んで、どっかに移動してから起動して、それで適当にサーバー選んで落としてこればいい
061761401/10/06 20:26ID:w30D7B7.
>>615-616
どうもありがとうございんます。。
どっかに移動して起動して、というのはどういうことでしょうか?
ディスクトップに解凍するのでいいのですか?

あと、大変失礼な質問なのですが
そのファイルは大丈夫なのでしょうか?
拡張子がexeなので心配で...
0618名無しさん01/10/06 20:36ID:???
どうやらアナタはWINDOWSの操作に先に慣れた方が良さそうです。
まずWIN板に行ってファイル操作や圧縮解凍に付いて学びましょう

>あと、大変失礼な質問なのですが
>そのファイルは大丈夫なのでしょうか?
>拡張子がexeなので心配で...

憶測ですが、おそらく616氏はsetup.exeのAUTHORでもcygwin.comのサーバ管理者でも
無いと思われますので何がどう大丈夫なのかは分からないでしょう
061961701/10/06 21:58ID:w30D7B7.
>>618
すみません、実はP検3級のOSはAなんです(w
解凍とかもたまにUGにいくのである程度はわかるのですが
でも、やっぱり深く掘り下げると難しくて。。

一瞬ウィルスだと思ったんですがアドレスが違うみたいですね。
ちょっとexeファイルに過敏になっていたもので..。
もう少し勉強してまた、質問させていただきます。
0620名無しさん@お腹いっぱい。01/10/06 22:12ID:???
解凍はたまにUGに逝くとある程度わかるんですか。名言ですね(藁
0621名無しさん@お腹いっぱい。01/10/06 22:22ID:w30D7B7.
>>620
解凍するソフトの種類や拡張子の種類はわかりますです。
0622 01/10/06 23:20ID:???
さてはあなた、ただのワレザーですね
0623名無しさん@お腹いっぱい。01/10/06 23:29ID:tXZdOs1c
perlの範疇ではないかもしれませんが…

ファイルからデータを読みだし、そのデータを含むHTMLを
ブラウザに表示させるスクリプトを書きました。
TELNETのコマンドライン上から実行すると
狙いどおりの出力をしてくれるのですが、
ブラウザ上からURLを入力して実行すると
500 Internal Server Errorがでてしまいます。
パーミッションなども確認したのですが
おかしなところは見当たりません。

何かチェックすべきところが他にあるのでしょうか。
0624名無しさん@お腹いっぱい。01/10/06 23:43ID:???
Content-type?
062562301/10/06 23:46ID:tXZdOs1c
print "Content-type: text/html\n";
HTMLの直前に書きました。
0626名無しさん@お腹いっぱい。01/10/06 23:51ID:???
>>623
print "Content-Type: text/html\n\n";
062762301/10/06 23:51ID:???
改行2つ「\n\n」
でした。自分で書いて気がついた。

助かった〜ありがとうございました。
062862601/10/06 23:52ID:???
ゴメンちぇく済みだったみたいね
0629たかちゃん01/10/06 23:54ID:j.NzGGwA
すいません
初心者ですが、cgiを設置したのに見ると
CGI エラー - 以下のコマンドラインを実行できません : "perl C:\kujira\aska.cgi ", errorcode = 2, No such file or directory
と出るのですが、どうしてでしょうか?
お願いします
おしえてください
0630名無しさん@お腹いっぱい。01/10/06 23:55ID:???
CGIスレ逝って下さい。
0631名無しさん@お腹いっぱい。01/10/07 02:00ID:???
perlのスクリプトをコンパイルして実行形式にしたいです。
助けてやって下さい。
0632名無しさん@お腹いっぱい。01/10/07 02:12ID:???
>631 perlcc。
CGI速くするだけなら別の方法もあるよ。
0633名無しさん@お腹いっぱい。01/10/07 14:43ID:???
foreach (reverse 1 .. 10) {}だと、
1番目から10番目を逆順で処理してると思うんですが、
逆順にしてから1番目から10番目を取得するにはどうしたらいいでしょうか。

つまり、
1-30のうち
10,9,8...,2,1ではなくて、
30,29,28...,22,21と取得するということ。
0634名無しさん@お腹いっぱい。01/10/07 14:44ID:jXvc6whk
>632
perlccですか!ありがとうございます。
けどやっぱcとかみたいにうまくコンパイルできないとか
言う話をちらほら聞いた事あるんですけどどうなんでしょう?
>CGI速くするだけなら別の方法もあるよ。
良かったら教えて欲しいっす!!
どんなんでしょう?
0635名無しさん@お腹いっぱい。01/10/07 15:15ID:???
>>644
スライスの使えばOK.
(reverse 1..30)[0..9]
0636名無しさん@お腹いっぱい。01/10/07 15:18ID:???
すまん。>>633ね。逝くわ。
あと、30から21がほしいだけなら、reverse21..30でもいいような。
0637JAPU@愛国戦隊大日本01/10/07 16:13ID:???
>>633
for($i = 30; 20 < $i; $i--) としても良いです。

>>634
mod_perl, SpeedyCGI など。Perl の場合は起動と構文解析に時間がかかるので、そのコストをおさえることができます。
0638名無しさん@お腹いっぱい。01/10/07 16:22ID:???
>>635
ありがとうございます。

んー。
@read[$hoge .. $moge]を逆順で処理させたくて、
$hoge = 0;
$moge = $hoge + 10;
foreach (reverse @read[$hoge .. $moge]){}
とやってみたのですが、
@readに仮に0-30のリストが入っているとして、
9,8,7,6,5,4,3,2,1,30という処理順になってしまいました。
むむむ…。一体どうすればいいのでしょう…。
0639635=63801/10/07 16:24ID:???
>>637
ありがとうございます。
試してみます。
064063501/10/07 16:30ID:???
>>638
修正
> 9,8,7,6,5,4,3,2,1,30という処理順になってしまいました。
→ 9,8,7,6,5,4,3,2,1,0,30という処理順になってしまいました。

>>637
書き込んだらレスがついていたので慌ててお礼だけ書きましたが、、、

まず考えたのがそれだったんですが、作っているのが掲示板で、
リストの最後がいくつになるか判断するルーチンは今のところ無いんです。
ありがとうございました。
0641名無しさん@お腹いっぱい。01/10/07 16:31ID:jXvc6whk
>637
サーバーで用いるインタープリタを変えるって事なのかな?
勉強になるです。ありがとうございました。
0642名無しさん@お腹いっぱい。01/10/07 16:39ID:???
perlccはcのソースにするのかな?
実行形式にするのにはPerl2Exeってのもあるんですね。
知ってる人の方がおおいんだろうけど
自分見たいののために報告〜。
0643名無しさん@お腹いっぱい。01/10/07 17:09ID:Hz5hclI2
>>640
>→ 9,8,7,6,5,4,3,2,1,0,30という処理順になってしまいました。
いったいどうすれば、そんな処理順に・・・。
それをねらってやるほうが難しい(つーか面倒)なのでは。
0644名無しさん@お腹いっぱい。01/10/07 17:53ID:???
>>643
@a = (0 .. 30);
@a = reverse @a[-1 .. 9];
print "@a\n";
0645名無しさん@お腹いっぱい。01/10/07 21:46ID:XxfLnDlQ
みんなファイルロックするのにどんな方法使ってます?
リネームが一番効果的っての聞いた事あんですけど。
DBMてのを使うのは無しで。
0646名無しさん@お腹いっぱい。01/10/07 22:17ID:kSNrchYM
キーが二つあるハッシュで、foreachみたく要素を回すにはどうしたらいいでしょうか。
ずーと悩んでるけれど全然スマートな方法が思いつかないッす。
0647名無しさん@お腹いっぱい。01/10/07 22:27ID:???
>>645
flockだけど、、evalすらしてない  w

>>646
二つしかないならループしなくて良いじゃん?
普通はkeysでkeyの配列作ってその配列をforeachしたり
eachしたり、、
@keys = keys (%hash);foreach (@keys)
while (($key,$value) = each %hash)
0648名無しさん@お腹いっぱい。01/10/07 22:36ID:kSNrchYM
>>647 レスさんきゅ

でも、チョット違うかもしんない。
そういう意味でなら、キーがみっつて事になるかな。
$hashref->{1}->{2} = 3;
みたいな。

書き方はこれじゃなくても、何でもいいんで同様のことを実行できる方法ないっすかね。
0649名無しさん@お腹いっぱい。01/10/07 22:48ID:???
647に書いてるやん・・・・(゚Д゚)???
0650むぎ茶      01/10/07 22:55ID:???
ハッシュ使うな全部配列にしろ  (n


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~  ┃
┃むぎ茶       ┃
┃[email protected]   ┃
┗━━━━━━━━━┛
0651名無しさん@お腹いっぱい。01/10/07 22:58ID:kSNrchYM
$hashref = \%hash;
$hashref->{"key1-1"}->{"key1-2"} = "1-3";
$hashref->{"key2-1"}->{"key2-2"} = "2-3";

while (($key, $value) = each %hash) {
 while (($key2, $value2) = each $value->{$key}) {
  print $key, "=>", $value->{$key2}, "=>", $value2, "\n";
 }
}

こーいうことがしたいの。
065263401/10/07 23:03ID:???
>>640のような変な処理順は直りましたが、(原因は>>644でした。)
未だに当初の目的は達成できません。
>>635を参考に>>638のようにしても無理なのですが、
どうすれば良いんでしょう?
0653名無しさん@お腹いっぱい。01/10/07 23:04ID:???
%hash = (
key1 => { key1-1 => 'val1-1' },
key2 => { key2-1 => 'val2-2' },
);

>>651
%$valueね。
0654名無しさん@お腹いっぱい。01/10/07 23:08ID:???
おー。うごいた。そっいうことかー。
むっちゃありがとー。今夜はぐっすりねれそうだよー。
0655名無しさん@お腹いっぱい。01/10/07 23:11ID:???
LWPってリジューム可能?
0656名無しさん@お腹いっぱい。 01/10/07 23:26ID:???
>>652
何言いたいのか解らん、上の方で言ってるのでなんで駄目なんだ

@list = reverse (0..30);
foreach (@list){
 print "$_\n";
 last if($cc == 10);
 $cc++;
}
0657名無しさん@お腹いっぱい。01/10/07 23:30ID:???
>>652
こうだと推測してみた。正解なら俺をエスパーと呼べ。
@read = (0 .. 30);
$hoge = 0;
$moge = $hoge + 10;
foreach (reverse @read[-$moge .. -1-$hoge]) { print "$_\n"; }
■ このスレッドは過去ログ倉庫に格納されています