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

Perl 初心者コーナー Part23

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/05/16 11:18ID:zDRBc/j4
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

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

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

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


CGIだけど、なんか質問ある? Part 10
http://pc2.2ch.net/test/read.cgi/php/1048686475/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
CGIに依存しないPerlの話題一般/Part2
http://pc2.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は、【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
0712nobodyさん03/06/01 01:06ID:???
>>710
ウィンドウズにActivePerlを入れてるなら、
スタート->検索->ファイルやフォルダで検索を開き、Win32で検索。

……Perlとかんけーねえ!?
0713動画直リン03/06/01 01:10ID:FDrVWEME
http://homepage.mac.com/hitomi18/
0714nobodyさん03/06/01 01:36ID:DeFU3cB4
>>712
ごめん。はじめっからはいってるんだね。
すんませんでした。
071570703/06/01 02:34ID:???
本当にすみませんでした。
やっと目が覚めました。
初心者だからって、それに甘えてルールを破る事って
いけないことですよね。。。
自分が甘ったれだって、気がつきました。
もう少し、勉強してきます。
ありがとうございました。
0716本物の70703/06/01 02:44ID:???
>>708 >>709 >>711
お前ら>>707の最後の一行嫁。
お前もついでに嫁>>715
0717本当の本物70703/06/01 03:08ID:5qKTyD6i
すみません。本当にすみません。
僕が、変な質問の仕方したばかりに、
偽者が現れて、荒れてきてます。。。
>>716は、偽者です!
僕は、今ちゃんとまじめに勉強してます。
今後も、もしかしたら僕の偽者が現れるかもしれませんが、
どうか、放置してください。
本当の本当に、ご迷惑をおかけしました。。。。
IDも晒しておきます。
0718直リン03/06/01 03:10ID:FDrVWEME
http://homepage.mac.com/yuuka20/
0719本物の70703/06/01 03:20ID:???
>>717
お前レス番間違えてるだろ?
0720本物の70703/06/01 03:21ID:???
>>707は板違い・スレ違い野郎を皮肉ってるだけだ。
0721nobodyさん03/06/01 03:40ID:???
板違い/スレ違いを構ってやってそういう板/スレだと思われると困るC〜
んだから、板違い/スレ違いが来たら叩くだけだC〜
その結果スレが荒れたって困らないC〜
荒れて困るほど人が多い板じゃないC〜
0722nobodyさん03/06/01 03:54ID:???
>>721
荒れると、困るというか嫌だが、何か?
俺以外でも、そう思うヤツはいてると思うが、何か?

荒れて良いなんて思った事なんて、一度もない。
Perl使ってCGI組んでる俺は、PerlだろうがPHPだろうが、
WebProg板全体のレベルアップを願う一人だ。
0723nobodyさん03/06/01 04:36ID:???
今日の日記。

あまりに下らない流れを発見した。
0724nobodyさん03/06/01 04:36ID:???
何だかんだ言って、みんな人が良いんだから
0725670=67603/06/01 05:30ID:6WOnkruh
>>678さん
有り難うございます。
$y = 2;を、$x = "$y";で展開すると、$xは2(数値)ではなく、"2"(文字列)
になるということですね。
言われてみれば当り前のことですが、これがはっきり認識できていません
でした。
0726nobodyさん03/06/01 12:16ID:???
>>722
馬鹿に馬鹿といってその結果荒れるのはしょうがない。
0727nobodyさん03/06/01 12:47ID:???
スクリプト言語の功罪か。
0728nobodyさん03/06/02 02:35ID:???
ちょっと疑問に思った。

unlessやらuntil使わずに、ifとwhileに!を組み合わせて使う。

ナンデダロ(・∀・)
0729nobodyさん03/06/02 07:03ID:???
>>728
それの方が、見やすい、理解しやすい場合がある。
または、その人が、それの方が見やすい理解しやすいからかな?
0730nobodyさん03/06/02 08:32ID:???
pack,unpackを詳しく説明してるサイトを
ご紹介してもらえませぬか?
0731nobodyさん 03/06/02 08:38ID:???
>>730
こういう所でいいのかな?

ttp://www.mikeneko.ne.jp/~lab/perl/numerical_transform/
0732nobodyさん03/06/02 12:25ID:s70dOIFM
以下のように2つのcsvがあり、
DBのように外部キーなどを使って管理しています。
(なお、telnet使えないため、DBD::CSVモジュールなどをいれられません)
------------------------------------------------------------
●機関マスタorgmaster(orgmaster.csv)
 各列は、
 ・orgid(主キー)
 ・orgname(テキスト)
 ・countryid(外部キー)

●国マスタcountrymaster(countrymaster.csv)
 各列は、
 ・countryid(主キー)
 ・countryname(テキスト)
 ・seq(数値)
------------------------------------------------------------
で、単に、機関マスタを開いて、countryid別にソートして機関名を表示
(selet orgname from orgmaster order by countryid)
というのなら、以下の手順でできるというのはわかるのですが・・・
(1)機関マスタを開く
$ORG[$values[0] = {
'orgname' => $values[1],
'countryid' => $values[2],
};
(2)ソートして表示
@tmp = sort { (${ORG[$a]->{countryid}} <=> ${ORG[$b]->{countryid}}) } 0 .. $#ORG;
foreach (@tmp) {
print 'orgname='. $ORG[$_]->{orgname}. " / ";
print 'countryid='. $ORG[$_]->{countryid}. "<br>";
}

(つづく・・・)
073373203/06/02 12:25ID:???
>>732のつづき
ここで、質問です。上記のものを変更して、
★国名も表示させるには、どうすればいいのでしょうか?
(selet orgmaster.orgname, countrymaster.countryname
  from orgmaster, countrymaster
  order by countryid
  where orgmaster.countryid = countrymaster.countryid)
★もし可能なら、ソート順をcountrymaster.seqにするにはどうすればいいのでしょうか?
(selet orgmaster.orgname, countrymaster.countryname
  from orgmaster, countrymaster
  order by countrymaster.seq
  where orgmaster.countryid = countrymaster.countryid)

073473203/06/02 12:28ID:???
もし大変そうでしたら、手順だけでもかまわないので、
教えていただければ幸いです
0735nobodyさん03/06/02 12:37ID:???
>>732-734
わからん・・・
何を聞きたいのかが分からん・・・

手順だけを教えてくれって・・・
処理のアルゴリズムは、プログラマーが考える事であって・・・
処理方法は、何十種類も、何百種類もある。
ところで・・・お前は、ソートの動きを理解してない、いつぞやのヤツでは?
073673203/06/02 12:43ID:???
>>735
あー、そうなんですね・・・。言われてみれば確かに。

定石でもあればと思ったのですが・・・

>ソートの動きを理解してない、いつぞやのヤツでは?
どうなんでしょう。
ソートで質問したことはあるけど、最終的には理解したつもり。。。なんですが・・・
0737nobodyさん03/06/02 13:09ID:???
>>736
>>471 ←この辺のヤツじゃない?

とりあえず・・・
自分では、どんな処理してみたの。
それを、晒してみろ。
073873203/06/02 14:00ID:???
>>737(>>471 、自分でした)

正直、質問したときは、どっから手をつけていいか???な状態でしたが、
ついさっきひらめきまして、方法はこんなかんじです。
なんか、想像してたよりかずっと楽にできたので拍子抜けなんですが、
どうなんでしょう?まだ冗長な部分とかありますでしょか?


▼国マスタを開いて、下のように国ごとの名称と順番を取得しておく
$COUNTRY[$values[0]] = {
'countryname' => $values[1],
'seq' => $values[$2],
};

▼機関マスタの情報を$ORGに代入する際、以下のように、
 「機関マスタ.countryid=国マスタ.countryid」となるような、
  国マスタ.countrynameや国マスタ.seqを、ひっぱってくる。
 (ここから後は、外部テーブルを意識する必要はなく、$ORGの処理に専念すればOK)
$ORG[$values[0] = {
 'orgname' => $values[1],
 'countryid' => $values[2],
 'country_contryname' => $COUNTRY[$values[2]]->{contryname}, #国マスタ.contryname
 'country_seq' => $COUNTRY[$values[2]]->{seq},#国マスタ.seq
};

▼$ORGをいじくる(ソート基準をcountry_seqにして、表示する対象をcountry_contrynameにする)
@tmp = sort { (${ORG[$a]->{country_seq}} <=> ${ORG[$b]->{country_seq}}) } 0 .. $#ORG;
foreach (@tmp) {
print 'orgname='. $ORG[$_]->{orgname}. " / ";
print 'country_contryname='. $ORG[$_]->{country_contryname}. "<br>";
}
0739nobodyさん03/06/02 14:33ID:???
>>738
いや・・・
それでできたなら、それでいいんじゃない?

一言言わせて貰えば・・・
なぜ、二つのリファレンスで管理してるのか・・・
一つで管理してれば、そんな処理せずソートできるのに。

・・・と、この辺は、そちらの都合でそうしてるんだろうし。
これ以上、何も言う事はないかな。

何作ってるか知らんが、適度にがんがれ。
0740名無しさん@お腹いっぱい。03/06/02 15:39ID:vewE58z2
あるディレクトリのファイル数を調べる方法を教えてください。
0741nobodyさん03/06/02 15:52ID:NLUHomb+
>>740
グロブかディレクトリハンドルを使う。
この二つはファイル名とドットファイルの扱いが違う点に注意。
0742名無しさん@お腹いっぱい。03/06/02 16:19ID:vewE58z2
ありがとー
0743名無しさん@お腹いっぱい。03/06/02 19:18ID:vewE58z2
perlで空フォルダを作成する場合の方法をご存知の方居ませんか?
検索ではなかなか出てこなくて・・・
0744nobodyさん03/06/02 19:20ID:???
フォームから「<input type="file">」でアップロードしてもらったJPEGファイルの、
横幅や縦幅を取得するにはどうすればいいのでしょうか?
0745nobodyさん03/06/02 19:26ID:???
>>743
mkdirを使う。
ちなみに「フォルダ」じゃ見つかりにくいと思われ。「ディレクトリ」で探そう。

>>744
Perlと無関係。
074674403/06/02 19:30ID:???
>>745
あ、そうすね。すみません逝ってきます
0747名無しさん@お腹いっぱい。03/06/02 19:46ID:vewE58z2
>>745
ありがとーう。
mkdir($Dir, 0777);としても755になっちまいましたが。
作ったディレクトリの中にファイルを作ったり出来たんで上手くいきました。
0748nobodyさん03/06/02 19:56ID:???
HTML::Template を使っています。
で、ページをSJISで吐き出していたのですが、
あるときから、ページの一部がEUCで吐き出されるようになってしまいました。

# HTMLテンプレートをオープン
my $template = HTML::Template->new(filename => $PathTmplStart);

# パラメータを埋める
&jcode::convert(\$HtmlYou_are_here, "sjis");
$template->param(
  YOU_ARE_HERE => $HtmlYou_are_here,
);
# テンプレートを出力
print $template->output;

このコードで、「YOU_ARE_HERE」の部分はSJISで表示されますが、
それ以外の部分はEUCで表示されてしまいます。

テンプレファイル($PathTmplStartのファイル)はSJIS、スクリプトはEUCです。

どのタイミングからこうなってしまったかは不明ですが、
しかし、正常な表示のときと今とでは、上記コード部分はまったく変わっていません。

なお、同じcgiファイル中で、HTML::Templateを使っている全てのかしょで、
同様の現象が起きています。

いったい、どこを疑えばいいのでしょうか?
0749nobodyさん03/06/02 19:58ID:???
>>747
umask
0750nobodyさん03/06/02 20:51ID:???
unmaskでは?
0751nobodyさん03/06/02 21:09ID:8SqwvWBe
>748 当たり前じゃね? outputの前にContent-Typeをsjisで吐き出さなきゃ駄目だろ
0752動画直リン03/06/02 21:10ID:mGHfwiJV
http://homepage.mac.com/hitomi18/
0753預言者03/06/02 21:33ID:???
http://life.fam.cx/mfg/






0754nobodyさん03/06/02 22:02ID:???
>>750
ハァ?
075574803/06/02 22:27ID:???
>>751(どもです。)
いや、
print "Content-Type: text/html\n\n"; は、すでにこの時点で、
書いてます。(ずっと前の方で)

ただ、sjisとは書いていませんでしたが。

でも、ページ全体が化けるばけでなく、
ページの1部分(パラメータYOU_ARE_HERE 以外の部分)が化けるんですよね。
(で、IEでエンコードをEUCにすると、逆にパラメータYOU_ARE_HEREの部分だけが化ける)

だから、sjisと書いてないこととは別だとは思うのですが・・・
(ただ、今は、開発してた環境(ていうか会社)ではないので、試せてはいないのですが)

それに、今まではsjisと書いてなくても化けてなかったし・・・
0756nobodyさん03/06/02 22:32ID:???
perlで画像の縦,横の大きさを取り出すには?
0757nobodyさん03/06/02 22:39ID:???
>>756
画像のフォーマットによる。
0758nobodyさん03/06/02 22:51ID:???
>>756
>>757を補足。
Image::Size モジュールとか、
GDモジュールとか、
Image::Magickモジュールとか、その辺をググれ。

上から順番に簡単。
0759nobodyさん03/06/02 22:55ID:???
>>748
念のためにコンテントヘッダーと、<meta>の両方を使って文字コードをsjisにしてみる。
それでもなおわからないのであれば、
1.エディタを疑う。(勝手にEUCにして保存してないか)
2.鯖の設定を疑う。
もう一度確認してみたまい。
7度探してって言うだろ?
0760nobodyさん03/06/02 23:04ID:9tPqBm3m
拾ってきたCGIファイルをワードパッドやメモ帳で開くと
日本語の部分が文字化けしてることがあるんですが
どうやれば文字化けしないで済みますか?
編集したくてもできなくて困っています。
0761直リン03/06/02 23:10ID:mGHfwiJV
http://homepage.mac.com/yuuka20/
0762nobodyさん03/06/02 23:10ID:???
>>760
スレ違い。

EUC-JPなどSHIFT_JIS以外の文字コードにも対応している
テキストエディタ使いなさい。
http://www.vector.co.jp/
0763nobodyさん03/06/02 23:21ID:9tPqBm3m
>>262
そこからエディタをDLしたら文字化けが直りました。
ありがとうございました。
0764名無しさん@お腹いっぱい。03/06/03 01:02ID:0MDIlf0d
現在infoseekを利用していて、
mkdirによって作成したディレクトリとそれ以下のファイルがFTPアップローダ側からの
削除が出来なくなってしまいました。
tripodで色々と試していたときにもディレクトリが削除できなくなってしまったことがあるのですが、
(FTP側から)何かPERLスクリプトに問題でもあるのでしょうか?

誰か情報お持ちの方教えてください。
0765動画直リン03/06/03 01:10ID:HzexL3AB
http://homepage.mac.com/hitomi18/
076676403/06/03 01:20ID:0MDIlf0d
申し訳ありません。自己解決してしまいました。
報告としてはmkdirのあとに更にchmodをすることで解決するようです。
0767nobodyさん03/06/03 02:02ID:???
>>766
そんなんあたりまえだろヴァカ
0768nobodyさん03/06/03 02:09ID:6112bZio
・_・y━””ここで一服
http://homepage3.nifty.com/coco-nut/
そしてあぷろだはここ
http://www.k-514.com/imgbbs1/imgboard.cgi
076974803/06/03 11:54ID:???
1個のテンプレートファイルを開いて(ここで、すでにsjisになってることを確認)
(ちなみに秀丸)
一応、もう1回、SJISで明示的に保存したら、うまくいきました。

と、同時に、別のかしょ(テンプレートファイルもまったく別<いじってない)
が、このあと全てなおってました。。。

意味不明です。。。まぁ、なおったからいいんですが・・・
0770nobodyさん03/06/03 12:09ID:1E21CA31
>769=748 いやだからね CGIファイルがeucなら、 明示的に「Content-Type: text/html;charset=Shift_JIS\n\n」って書かないと、 sjisのテンプレをeucだとして読み込んで出力するんだから化けるの当たり前っしょ
0771nobodyさん03/06/03 13:26ID:8vlIkX7m
例えば'ef78a90134ef78a90134'という[0-9a-z]を使った文字列を、先頭から2文字づつを16進数としてアレイに格納するにはどう書けば良いでしょう?
文字数が偶数個であることは保証されています。
s/(..)/$1 /gで一旦変換後split, hexするのは思いつきましたが、もっとカコイイ書き方はありますか?
0772nobodyさん03/06/03 13:29ID:???
>744
http://www.i-say.net/cgi/tips_listview.php3
0773nobodyさん03/06/03 13:58ID:???
>>771
unpack
0774nobodyさん03/06/03 14:22ID:???
open と opendir について質問です。

MS-DOS や windows のファイル共有で使う UNC 名(?)を
open や opendir で使うにはどの様な書式でファイル名を
渡せばいいのでしょうか?

$name = '\\\\share_name\\dir\\';

opendir( DIR, $name );

とか、やっても駄目でした。
077574803/06/03 14:46ID:???
>>770
あー、そういうことなんですね。ありがとうございます。
0776nobodyさん03/06/03 15:41ID:???
配列を先頭からm個に切り詰める方法で何かいいのない?
無限ループ内でm個になるまでpopするくらしか思いつかない。。
0777nobodyさん03/06/03 15:46ID:???
>>776
$#a=m-1;
0778nobodyさん03/06/03 15:47ID:???
>>776
splice
077977603/06/03 15:50ID:???
うぉ、速レスが2つも。
ありがとうございます。

splice、すっかり忘れてた。恥かしい限りです。
078077103/06/03 17:11ID:???
なるほど、↓んな感じですね。'H'の意味を間違えてはまってました。
unpack('a2' x (length($str) / 2) , $str);
0781nobodyさん03/06/03 19:59ID:???
Undefined subroutine &jcode::f called at jcode.pl line 400.
というエラーが出てしまいます。

もちろんjcodeはいじってませんし、なお、jcode.plは最新版です
この場合のデバッグって、どういう姿勢というか考え方で行なえばいいのでしょうか?
どこを直せばいいかまったくわからず・・・
0782nobodyさん03/06/03 20:07ID:???
>781
まず辞書をひく。
0783nobodyさん03/06/03 20:34ID:PcOC09to
質問です。
えとアクセスしたらIPとそのアクセスした日にち・時間をログに保存するスクリプト教えてください。
お願いします!!ちなみにこれは荒らし対策です
078478103/06/03 20:37ID:???
jcodeとは別の自作の方のscriptを、前のバージョンに戻ってそこから書き直したら、
エラーが出なくなりました。

>>782 いや、英語はわかるんですけどねー・・・
結局原因がわからなかったものの、解決してしまいました(なんか歯切れが悪いですが)
0785nobodyさん03/06/03 20:48ID:???
>>783
スレ違いだがね。
http://www.google.com/search?as_q=%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88&hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%AD%E3%82%B0%E8%A7%A3%E6%9E%90
0786nobodyさん03/06/03 20:53ID:EuO1wjCe
よろしければお智恵を貸して下さい
行末に時間記述のあるテキスト xxx.txt を
時間順に修正、上書きすることってできるでしょうか?
xxx.txt
------------------
.... 01-jan-2002
.... 02-jan-2001
.... 01-jan-2001
------------------

------------------
.... 01-jan-2001
.... 02-jan-2001
.... 01-jan-2002
0787nobodyさん03/06/03 21:10ID:9Ku6+BeZ
Undefined subroutine &jcode::f called at jcode.pl line 400.
というエラーが出てしまいます。

もちろんjcodeはいじってませんし、なお、jcode.plは最新版です
この場合のデバッグって、どういう姿勢というか考え方で行なえばいいのでしょうか?
どこを直せばいいかまったくわからず・・・

0788nobodyさん03/06/03 21:28ID:???
>>784
おまえは本物のアレか?
「読んだけどよくわかりませんでした」

jcode内部にfなんてルーチンねえよボケって意味だろうが。
可能性としては、
1.おまえのjcodeの扱いが変。
マニュアル読みつつ、jcode呼び出してるところを全部チェックする。
2.jcodeのバグ。
製作者に報告。

ま、1を5000回くらいやってから2だと結論するようにな。
0789nobodyさん03/06/03 21:33ID:???
相手にしるなと
0790nobodyさん03/06/03 21:48ID:???
>>786
やり方次第で。

とりあえず思いついたのは、

1.一行取り出して、
2.末尾の時間をコピーし、
3.それをepoch秒に変換し、
4.この秒をキーにしてハッシュに行全体を代入する。
これをファイルが尽きるまで繰り返す。

5.ハッシュからキーを全て取り出し、
6.数値として扱ってソートする。

7.ソート後の順番で値を全部ファイルに出力すれば、完成。

実際のコーディングで難しいのは、3のあたりかもなー。
Dateなんたらモジュール使えば楽にできそうな気もする。
力技で20030603214900みたいな形式に変換しても用は足せるだろうが。
079178603/06/03 22:38ID:EuO1wjCe
>>790
レスありがとうございます。
う〜ん、なんか初心者の私には難しそうですね。
さくっとあきらめようかしら。
0792nobodyさん03/06/03 22:44ID:I9aep0OW
みてね♪
http://www1.free-city.net/home/s-rf9/page006.html
0793直リン03/06/03 23:10ID:HzexL3AB
http://homepage.mac.com/yuuka20/
0794nobodyさん03/06/03 23:15ID:???
2バイト文字か、そうでないかを判断する方法を教えてください
0795nobodyさん03/06/03 23:16ID:???
>794
文字コードで検索。
じゃなきゃ、>>4のサイトをまわってみ。
0796nobodyさん03/06/03 23:22ID:???
>>791
ソースを晒してみろ。
バグが出てる部分だけでもいいし、
全部を、どこかのアプローダーに上げてもいいし。

少し、見てやるから。
079779103/06/03 23:23ID:???
ごめん・・・誤爆ですた。
0798796&79703/06/03 23:24ID:???
ドツボだ・・・
誤爆2回ですた。
0799nobodyさん03/06/03 23:52ID:???
>>786
ちょっと書いてみた。年号・月名(文字変換)・日の順番に並べてからソート。
同じ日のデータが複数行があるとだめぽ。そのときは、改作しる。

%mon=qw(jan 01 feb 02 mar 03 apr 04 may 05 jun 06 jul 07 aug 08 sep 09 oct 10 nov 11 dez 12);
@mon=qw(jan feb mar apr mai jun jul aug sep oct nov dez);
while(<>){
chomp;
split;
($date=$_[$#_])=~s/(\d+\-)(\w+)(\-\d+)/$3$mon{$2}$1/;
$hash{$date} = $_;
}
foreach $key (sort {$a <=> $b;} keys %hash) {
print $hash{$key}, "\n";
}
0800nobodyさん03/06/04 02:44ID:???
大分類(数字二桁)>小分類(ハッシュで 種類,価格) とデータを管理していて、
大分類の数字(01など)がトリガーになって、対応する小分類の中身を全て表示する、という風にしたいのですが、どうもうまくいきません。

例えば
$data{'01'} = { "エンピツ" => 100, "消しゴム" => 80 };
$data{'02'} = { "ネクタイ" => 1000, "ワイシャツ" => 1500 };
$data{'03'} = { "コート" => 10000, "マフラー" => 2500 };

while(($num,%temp) = each(%data)){
 print "$num<BR>\n";
  while(($name,$price) = each(%temp)){
   print "$name $price<BR>\n";
  }
 print ".......<BR>\n";
}
としても
080180003/06/04 02:44ID:???
01
HASH(0xbc864)
...
02
HASH(0xcd5c4)
...
03
HASH(0xcd6cc)
...
と、よくわからないものが返ってきてしまいます…

%kind01 = ( "エンピツ" => 100, "消しゴム" => 80 );
としておいて
$i = '01';
 while(($name,$price) = each(%kind$i)){  print "$name $price<BR>\n"; }
としてもエラーになってしまいます。
どのようにするのがベターなのでしょうか…
0802nobodyさん03/06/04 03:32ID:???
>>801
でりふぁれんす
080380003/06/04 03:50ID:???
>>802
ありがとうございます。今モーレツに感動してます(;´Д⊂ヽ
ぐぐって一発目に出てきたページをみて組み直しました。

$data{'01'} = { "エンピツ" => 100, "消しゴム" => 80 };
$data{'02'} = { "ネクタイ" => 1000, "ワイシャツ" => 1500 };
$data{'03'} = { "コート" => 10000, "マフラー" => 2500 };

$hoge = '01';
$temp = \%data;
$x = $$temp{$hoge};
while(($i,$j) = each(%$x)){
 print qq|種類"$i" 値段"$j"円<BR>\n|;
}

たったこれだけで出来るとは・・・すげー(;´Д⊂ヽ
080480003/06/04 04:00ID:???
まじですげー
考えたやつエライ(;´Д⊂ヽ
興奮が収まらない・・・
080578603/06/04 10:33ID:nmL3emss
>>790
>>799
レス、ありがとうございます。
やっぱり始めたばかりの私には
まだ荷が重いみたい(〃▽〃;)
勉強して出直してきまーす。
0806nobodyさん03/06/04 10:42ID:???
論理値 $flagに対して
if ($flag) とやるみたいに、

論理値 $HOME[$myhomeid]->{flag} に対して、
if (!$HOME[$myhomeid]->{flag})
としたいのですが、

できない模様です。

どのように表現すればいいのでしょうか?
if ($HOME[$myhomeid]->{flag} == TRUE)
とするしかないですか?
0807nobodyさん03/06/04 10:52ID:???
>>806
・・・かなり、できる模様ですが。
0808nobodyさん03/06/04 10:53ID:???
>>805
せっかく作ってやったんだからやってみろよ。
>>799の@mon=...の行は不要だった。消してね。
それとよく見たら、昇順ソートしたいのね。
それなら、{$a <=> $b;}ってとこ、{$b <=> $a;}にすればできるよ。
080980603/06/04 11:01ID:???
>>807
え、if (!$HOME[$myhomeid]->{flag})で問題ないはず、ってことですか?
おかしいなー。
0810nobodyさん03/06/04 11:03ID:???
>>806
>>807
$HOME[$myhomeid]->{flag} = "false"とかやってるに100真珠
0811nobodyさん03/06/04 11:09ID:???
>>810
ああ・・・なるほど。
それじゃ、俺も同じく・・・

文字列を評価して偽の判定を期待してるに3000カノッサとスパーひとしくん人形を20個。
■ このスレッドは過去ログ倉庫に格納されています