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

Perl 初心者コーナー Part24

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆fBgbHI04bQ 03/06/07 22:30ID:GbQKLcPE
いらっしゃーい、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
0672nobodyさん03/06/20 19:00ID:???
>>670

printしてるのがヘッダ部分ではない、に1票
0673nobodyさん03/06/20 19:12ID:???
>>671
http://pc2.2ch.net/test/read.cgi/php/1047806915/
のほうがいいんじゃん?
067466903/06/20 19:14ID:???
>>669なんですが、
$iが増えてるのに、$#ORGが、最終的に-1になってしまってます・・・
なぜなんでしょう?
0675nobodyさん03/06/20 19:31ID:???
>>673
既にそっちに書いているもよう
マルチだから相手にすんな
0676nobodyさん03/06/20 19:35ID:???
>674
[]と{}の違いわかる?
0677nobodyさん03/06/20 20:58ID:kJiV021K
webprogじゃないんだけど、perl2exeでfile::copy使った
人います?。コンパイルはできるんだけど実行の時にあれやら
コレやらが足りないっていわれるんだよね。
つーか、いまいちよくわかんないなぁperl2exeって。
0678nobodyさん03/06/20 21:01ID:1Z33Vqhm
一日たった110円であなたのお店やホームページの宣伝をします!

貴方のお店&サイトを効果的に宣伝できます!
お店の足取りが悪い・・・。私のサイトにはあまり人が来ない・・・。などお悩みの方は、
ぜひおすすめです。手軽&簡単しかも日本中に宣伝できますので、
大幅なアクセスアップが期待できます。

[料金について]
1日110円で宣伝&クーポン券の発行が出来ます。
年間契約で申込された場合、40,000円になります。
6ヶ月契約で申込された場合、25,200円になります。
3ヶ月契約で申込された場合、12,600円になります。

http://www.c-gmf.com/h17103.htm
ぜひ一度お試しになってみてはいかがでしょうか?
0679nobodyさん03/06/20 22:06ID:Vg4M86DU
カスみたいな質問ですが・・・


#おはよう
#こんにちわ
お元気ですか?
#こんばんわ
おやすみなさい


と中に書かれているテキストの中の文字を、改行を<br>に変換して、
#で区切って配列に入れたいのですが・・・。
どうすればできるのでしょうか・・・( ・ω・)
0680nobodyさん03/06/20 22:14ID:???
>>679
内容もさることながら、質問の仕方もカスのような気がしますが。
1. \nを<br>に変換する。
2. splitにて、#区切りの配列を生成する。
3. shiftする。
のような手順でしょうかね。
0681nobodyさん03/06/20 22:18ID:jiB8qm8t
>>679

$text = <<'_END_';
#おはよう
#こんにちわ
お元気ですか?
#こんばんわ
おやすみなさい
_END_
$text =~ s/\n/<BR>/g;
@text = split(/#/, $text);
068267903/06/20 22:31ID:Vg4M86DU
>>680
スイマセン、精進しまつ(;;)

>>681
ナルホド!!   ・・・と思ってやってみたのですができない・・・。

$message = "./aisatu.dat";
open(FILE,"$message");
$text = <FILE>;
$text =~ s/\n/<br>/g;
@text = split(/#/,$text);
print "@text\n";

一行目の文字列しか出力されないです・・・( TÅT)
0683nobodyさん03/06/20 22:33ID:jiB8qm8t
>>682
$text = <FILE>;
これだと、1行しか読めません。
$text .= $_ while(<FILE>);
でいいと思います。
0684nobodyさん03/06/20 22:52ID:Vg4M86DU
>>683
.+゜(・∀・)+゜. 全部読んでくれました。

改行が<br>に変換されないのが気になるところですが・・・
あとは自分で調べてみます。
(TдT)ノシ アリガトウです
0685nobodyさん03/06/20 22:53ID:???
>684
あー。
自分で調べるか、がんばれ。

改行コードがヒントだ。
0686直リン03/06/20 23:10ID:Q1+dqLU8
http://homepage.mac.com/yuuka20/
0687nobodyさん 03/06/21 10:55ID:wNdBDwZ1
質問させていただきます。
1:サムネイル画像の生成を行いたいです。
2:GDを使う方法を試してみたのですが、
3:標準で使える設定にはなっていないようで、エラーになりました。

何か手段はないでしょうか?
・ライブラリを同じとこに置いて使う??
 (あまりよくわからないのですが調べててこんな方法があるのかな?
  と思いました。)
・自分で画像縮小のアルゴリズムを組む。(ちと自信は無いですが)

ちなみにjpeg/png/(gif) などで行いたいです。手助けお願いします。
0688nobodyさん03/06/21 12:00ID:QZ0EDUba
>>684
MAC?

>>687
gifは無理なんじゃない?
0689無料動画直リン03/06/21 12:10ID:AstYoKnr
http://homepage.mac.com/norika27/
069068703/06/21 12:57ID:wNdBDwZ1
インストール無しで使える画像処理用のモジュール御存知の方居ませんか?
(GD,PerlMagickはインストールっぽいので。)
jpegだけでも縮小処理をしたいです。(他 gif/png)
0691nobodyさん03/06/21 14:47ID:???
>>690
ますますGD入れとけって言いたくなります(w
1.41が旧GDlib使っているんだっけ?(朧)
069268703/06/21 15:21ID:fPD3+uod
インストール無しでGDの機能を利用する方法ってあるのですか?
0693nobodyさん03/06/21 15:22ID:zsFEWp+J
>>692
あきらめれ。
069460303/06/21 16:25ID:???
>>692
GDのソース見て、インストールなしでも使えるようにモジュール書き替えれ
069568703/06/21 16:32ID:fPD3+uod
やっぱしそれが一番ですかねぇ。必要なところだけで十分なので。
たとえば require "GD"; ってのではやっぱし動かないんですよね?

さっきGDの中身を見てたんですが、一部わからない所もありました。
誰か同じことを考えて、インストール無しで使えるGDを公開してる人って
居ないんですかねぇ・・・
0696_03/06/21 16:42ID:???
http://homepage.mac.com/hiroyuki44/
0697nobodyさん03/06/21 17:26ID:VyXOk/2c
while ($temp = <STDIN>) {
chomp($temp);
print "$tempが入力されました\n";
}

これだとABCDと入力したら ABCDが入力されました、と出て、

while ($temp = <STDIN>) {
$temp2 = chomp($temp);
print "$temp2が入力されました\n";
}

これだとなぜか、1が入力されました、としか出ないのはなぜですか?(´・ω・`)
教えてエロイヒト
0698nobodyさん03/06/21 17:39ID:???
>>697
chompの返り値は、切り落とした文字数。
ちなみにPHPのchopの返り値は、処理した後の文字列になる。
0699 ◆hMJAPH9PWA 03/06/21 17:58ID:???
>>697
いろいろな本を読んで、またはGoogleで検索して、それでも分からない場合に人に聞きましょう。
chomp()の仕様を答えるのは簡単だけど、そうやって何もかも人に聞くつもりならプログラミングなんて手を出さないほうがいい。

>>698
Perlのchop()も同じ仕様だよ。
というか、なぜそこでPHPが、しかも(関係あるとはいえ)別の関数が出てくるのやら。
070068703/06/21 18:11ID:wNdBDwZ1
GD.pm の copyResized の内容って具体的にはどこに記載されているのですか?
ttp://homepage1.nifty.com/smastani/hp/smastani/pc/thumbn.html
コチラに掲載されているようなことをやろうと思っています。
copyResized以外はGD.pmを見ることで理解が出来たのですが。。。
070160303/06/21 18:12ID:???
print "Just another Perl hacker\n";
0702nobodyさん03/06/21 18:13ID:???
>>698
あり。理解しますた。

>>699
初心者煽るくらいならレスしないでください。役に立たないコテハンは目障り。
0703nobodyさん03/06/21 18:23ID:???
うわー、>>702みたいなバカがまだいるんだ。
天然記念物クラスのヴァカだな。
0704nobodyさん03/06/21 18:26ID:???
>>703
コテハンから名無しに戻って自演ですか?( ´_ゝ`)
070569803/06/21 18:36ID:???
なんだか怒られちゃった(えへ
元質問者がPHPスレに誤爆してたのでPHP+Perl使いと推測。
そして違いを挙げてみた。
それだけなので怒っちゃいやん。
0706nobodyさん03/06/21 18:43ID:???
DBIについてちょっと疑問なのですが、

WindowsにMySQLをインストールして使う場合、
DBIとDBD::MySQLか
DBIとDBD::ODBC+MySQL ODBC Driverを使いますよね。

問題はDBD::ODBCを使った場合。
$dsn = 'DBI:ODBC:test';
こんな風にデータソースを指定しますが、testっていうデータベース名を
先にODBCドライバにつくる必要がありますよね?

でも、ODBCドライバに作成するときには、それと同時に
ユーザ名やパスワードも入れるじゃないですか。
つまり、testっていうODBCデータソースには、データベース名と
ユーザ名とパスワードがすべて含まれてるってことですよね。

なのに、そのあとそのdsnを使ってDBにつなぐときは、
$dbh = DBI->connect($dsn, 'test', 'test');
という風に、またユーザ名とパスワードを指定する必要があるわけです。

ここが納得できないんですよ。だったらODBCドライバのところでは
ユーザ名やパスワードを入れたくないんですが。

今実験してみたところ、やっぱりODBCドライバのユーザ名とパスワードの欄には
何も入れなくても(または適当にいれても)、正常にDBに接続できています。

なんで?
0707_03/06/21 18:43ID:???
http://homepage.mac.com/hiroyuki44/
0708nobodyさん03/06/21 18:44ID:???
>>705
chomp();なんかで躓くのが、PHPやってるとは思えんが( ´_ゝ`)

でもまぁ、質問スレに無能なコテは要らんわな。
質問厨がイヤならスレ見なけりゃいいんだから、アフォな煽りなんかすんなっての。

で、>>702
そのミスの仕方から察するにとほほ見ただろ?(゚∀゚)
あそこだけを信じるなよ。
070967403/06/21 19:06ID:???
>>676
あう、わかります。すみません。。。。。
$ORG{$i} ってなんだよじぶん、、、
0710nobodyさん03/06/21 19:08ID:???
CSVファイルに、
print LINE $line "\n";
とかいて、
そのCSVファイルをWIn上で開くと、
Winの改行は\r\nのはずなのに、問題なくみれてしまうのはなんでなんでしょうか?
0711直リン03/06/21 19:10ID:AstYoKnr
http://homepage.mac.com/yuuka20/
0712nobodyさん03/06/21 19:12ID:???
>>710
Winだからというより、開いたアプリによる。
0713nobodyさん03/06/21 20:17ID:???
use Fcntl qw(:flock);
flock (LOCKF, LOCK_EX);

みたいにするのって、
flock(DAT, 1);
flock(DAT, 2);
flock(DAT, 4);
flock(DAT, 8)
とただやるのに、比べて、どんな利点があるんでしょうか?;
071471003/06/21 20:18ID:???
>>712
ってことは、MS-Excelは、\nだけでも\r\nと同じようにあつかってくれてるってことですか?
0715nobodyさん03/06/21 21:03ID:???
だろな。秀丸は、\nだけでも改行してくれるが、MGエディタは、
ぜーんぶつながっちゃって困った和さ。
0716nobodyさん03/06/21 21:04ID:???
use CGI::Carp qw(fatalsToBrowser);
とかKcatchとか、
エラーをブラウザに出力してくれるものって、
初心者にはどれがおすすめですか?

あと、これって使っても、エラーをとらえきれなくて、
結局生エラーログにしかのってない、っってことも、ありますか?
(どーもいろいろためしてみたら、そのように思えるのですが)
0717nobodyさん03/06/21 21:28ID:aWFirrKr
コーディングのお供に
http://mypage.odn.ne.jp/home/dongrico
0718nobodyさん03/06/21 21:59ID:???
>>713
移植性の向上
0719nobodyさん03/06/21 22:11ID:???
>>716
サーバー自体のエラーは捕捉出来ない。
(CGI(perl)が返すヘッダーのエラーとか)
perl自体のエラーは詳しく知らんがたぶん100%捕捉できるだろう。
0720nobodyさん03/06/21 22:46ID:???
>>713
#define LOCK_UN 8 /* unlock file */
となってるシステムでも正しく動く。
0721nobodyさん03/06/21 23:56ID:???
だれも>>706はわからないでつか
0722nobodyさん03/06/22 00:04ID:???
@ORGのm番目からn番目までの要素だけを配列として取り出すには、どうするのがスマートでしょう?

for ($i=m;$i<=n;$i++){
    push (@tmp_ORG,$ORG[$i-1]);
}
@ORG = @tmp_ORG;

てなもんでしょうか?
いや、便利な関数とかあるのかなと思ったもので
0723nobodyさん03/06/22 00:13ID:???
>>721
何を問題にしているのかがわかりませんが何か?
>>722
@ORG[m .. n]じゃいかんの?
0724nobodyさん03/06/22 00:54ID:RPCqHkE2
バックボーンを非公開としているサーバー
はヘボイという事でしょうか?
0725nobodyさん03/06/22 01:11ID:???
>>716
ヴァカ抜かすな。
KCatchが補足できないエラーはきちんとKCatchのページに書いてある。読め。
あ、もう一つ補足できないエラーがあるな。
お前のねじれた脳味噌から生じた論理エラーだ。
0726nobodyさん03/06/22 01:37ID:???
いきなり質問スマソ。
漏れのHPのKENTWEBのチャットを設置してうまく動作したのを確認して
次はスタイルシート埋め込み。
DLしたら分かるけどwtalk2.cgiの200行目付近にHTMLに出力する記述があるからそこに次の一行を追加。
print OUT "<Link Rel=\"stylesheet\" Type=\"text/css\" Href=\"../../lib/memory.css\"><Blockquote><Blockquote><Blockquote><Blockquote>\n"
もちろん適当に入れたのでなくてそれらしくHEADタグの中に普通に埋め込み。こっちでは203行目ってことになるな。
で、文法チェッカーでみると、いじった筈のない205行目の
print OUT "参加者($num):$member<hr>\n<!--START-->\n";
でエラー。OUTを宣言する必要がありますか?とか言いおる。
かなり分かりにくいと思うので整理。
1.自分はKENTWEBで配布されている「WebTalk」というチャットスクリプトにスタイルシートを埋め込みたい。
2.<Link Rel="〜のタグを埋め込む為、wtalk2.cgiの203行目に↑のスクリプトを追加。
3.なぜかエラー。500InternalServerErrorらしい。んで早速文法チェッカー走らせてチェックさせたらいじった筈のない直後の205行目で文法エラー。OUTを宣言する必要がないとかなんとか。
だれか助けて><。
072772203/06/22 01:50ID:???
>>723
そ、そんな書き方あったんですね。。。さすがperl
0728nobodyさん03/06/22 01:53ID:???
>>721
ODBCのドライバの設定は必須ではない。必要なパラメータは全部connectストリングに埋め込む事もできる。

>>726
情けなくなるくらいヘボだな。追加した文の文末に「;」が無い。
この位の事でとうとうと泣き言並べ立てて恥ずかしくないか?
072972803/06/22 01:55ID:???
次スレは、シンタックスエラーの質問はお断りにしようぜ。きりが無い。
0730nobodyさん03/06/22 02:08ID:7kmjTzsL
>>726
(゚Д゚)ポカーン

ネタ・・・だよな?いくらなんでもここまで初心者はないよ・・・な?な?
0731nobodyさん03/06/22 02:21ID:???
>>729
それ以前に、エラーすら書かない奴がとにかく多い。
なんとか聞き出してみれば、500エラーとか抜かすし。
エラー書けっつーのはちゃんと>>1にも書いてあるんだがなあ。
0732nobodyさん03/06/22 04:03ID:UMFBhruU
1:画像の転送を(転送量を)軽くしたいです。
2:gzipを使ってみました。
3:どこかのサイトにもあったのですが、既に圧縮されている
  画像などに関しては圧縮されないみたいでした。
  100kbに対して100b程度減りはしました。

画像の転送量を減らす手段は他にありませんでしょうか?
0733nobodyさん03/06/22 04:36ID:???
>>709
ハッシュと配列を勉強しる。
0734nobodyさん03/06/22 06:17ID:???
PerlだけじゃなくてPHPでも同じだったので、何処に書けばいいか分からなかったんですが、こちらに。
CGIで作成したファイルですが、パーミッションを変更(666や777)してもFTPから削除できません…。
スーパーユーザーではないので、所有者の変更をする事も出来ません。
rootで無い限り、どうする事も出来ないんでしょうか?
#CGIから削除するしかない?。それともサーバーによるものでしょうか?
#ちなみに、ディレクトリの場合は削除する事ができました。
0735nobodyさん03/06/22 08:36ID:???
そりゃpermissionじゃない。ownerの問題。よって、
chown ore:ore hoge.cgi
して、自分のファイルにしちゃう。
0736nobodyさん03/06/22 10:55ID:???
&query_condition(%house))
みたいに、ハッシュ配列を関数に渡したとき、
その引数を関数内で得るにはどうすればいいのでしょうか?

普段ならmy ($foo, $bar, hoge) = @_; とするところの話しです。
0737nobodyさん03/06/22 11:01ID:???
>>734 ファイルを削除するにはそのファイルのおかれてるディレクトリに書き込み権があればいい。
>>735 他人のファイルの所有者変更できるのは特権が要るだろうが。ボケッ
0738nobodyさん03/06/22 11:30ID:???
>>736
sub query_condition(%)
{
my $h = shift;
$h->{key};
}

query_condition(%house);
073973603/06/22 11:53ID:???
>>738
なるほど。ありがとうございます。
0740nobodyさん03/06/22 11:54ID:???
&query_condition($foo,$bar);

sub query_condition{
my ($lineid, $staname) = @_;

とやったら、
Can't use global @_ in "my" at search.cgi line 370.
と言われたのですが、
このエラーメッセージの意図がわかりません。
なんでこんなこといわれなきゃいけないんでしょうか?
0741nobodyさん03/06/22 12:01ID:???
>>740
前後を見ないと何とも言えない。

> なんでこんなこといわれなきゃいけないんでしょうか?

間違ってるからだろ。
074274003/06/22 12:17ID:???
>>741
そうですね、すいませんでした。もういちどよくみなおしてみます。
0743nobodyさん03/06/22 12:21ID:???
>>740
$lineidか$stanameがグローバルでどこかにあるんじゃないか?
0744nobodyさん03/06/22 12:22ID:???
>>737
自分の所有物でも所有者を変えることはできないけど。
0745nobodyさん03/06/22 12:30ID:???
そもそも??7なら誰かれ構わず削除出来るっしょ。
074674003/06/22 12:37ID:???
>>743
ビンゴでしたもようです。。。thankxです
0747nobodyさん03/06/22 13:33ID:???
>>737
有難うございます。
ディレクトリのパーミッションが775だったのが原因みたいです。
そのディレクトリも、CGIによって作成したものなんですが、
一生懸命0777を与えてるんですが、どうしても777になってくれません(;ω;)#775になってしまう。
ちなみに、その上のディレクトリはFTPから作成したもので、書き込みもOKです。
サーバーの設定で、ディレクトリ作成時に一般の書き込み許可させないって事とかあるのでしょうか…
兎に角、もうちょい頑張ってみます。
0748nobodyさん03/06/22 13:39ID:???
>>744
出来るものもある。System-IIIとか。

>>747
CGIでパーミッション変えればいい。
つーかユーザ権限でCGI実行できないヘボイところはとっとと見限ったほうが良い。
0749nobodyさん03/06/22 13:41ID:???
>>747
umask関数を調べてみれば解決するでしょう。
0750nobodyさん03/06/22 15:47ID:wDjVUYGM
$STA[$i]->{lineid}
$STA[$i]->{staname}
($iには0から10くらい入ってる)
には文字列があてはめられてるのに、

for ($j=0;$j<=$#STA;$j++){
    push (@TMPSTALIST,$STA[$j]);
}

foreach (@TMPSTALIST){
    $HTMLStaLine .= $TMPSTALIST[$_]->{staid}."/" .$TMPSTALIST[$_]->{staname}|;
}

で、何も表示してくれないんですが、なぜなんでしょうか?
075175003/06/22 15:47ID:wDjVUYGM
あ、もちろん、
$HTMLStaLineをprintしてます。
075273203/06/22 16:18ID:qinZbGMm
1:画像の転送を(転送量を)軽くしたいです。
2:gzipを使ってみました。
3:どこかのサイトにもあったのですが、既に圧縮されている
  画像などに関しては圧縮されないみたいでした。
  100kbに対して100b程度減りはしました。

画像の転送量を減らす手段は他にありませんでしょうか?
0753nobodyさん03/06/22 16:23ID:???
>752
Perlのコーディングによる問題ではない。
よってスレ違い。
0754nobodyさん03/06/22 16:44ID:???
>>752
画像を使わない。
075560303/06/22 16:50ID:???
>>752
画像のファイル構造自体が圧縮形式というつっこみでいいか?
0756アラー氏 ◆.GAf6ZDA2c 03/06/22 17:16ID:???
ここへ書けや!
http://homepage3.nifty.com/arashi/index.html
075775203/06/22 17:49ID:???
>>755
ある意味、望んだ答えでした。ありがとうございます。
0758nobodyさん03/06/22 19:47ID:???
myで宣言した変数は、有効範囲を外れると
メモリもクリアされるんでしょうか?
0759nobodyさん03/06/22 20:05ID:???
>>758
どこからも参照されなくなった時点でクリアされる。

逆に言えば、何かから参照されている限り、スコープを外れてもメモリの内容は残る。
たとえば、以下のようにサブルーチン内でmyした変数のリファレンスを返すということもできる。

$var = hoge();
print $$var;  # うんこ

sub hoge {
  my $abc = 'うんこ';
  return \$abc;
}
0760nobodyさん03/06/22 20:29ID:S8oOZHOQ
プログラム板から、移動してきました。

複数の検索エンジンに、キーワードを投げて
その結果をまとめてから出力というものを書いています。

それで、UNIX上のApacheでcgiを走らせているので
`wget $URL`;
$html = `w3m -dump_source $URL`;
そして、ファイルに$htmlを保存

などを試してみましたが、
wgetの方はURLが長すぎてダウンロード自体に失敗して、
w3mの方は、端末で同じコマンドを打つ分には成功しますが、
実行しても、何もファイルに書き込まれていなくて上手く取得ができません。

どうか、ご教授お願いします。

0761nobodyさん03/06/22 20:41ID:???
>>760
>>1を200回読んで出直せバカ
0762nobodyさん03/06/22 20:49ID:???
>>760
perlのコーディングと一体何の関係があるのかと。
076375003/06/22 20:50ID:Rv0SCDPi
どなたかおながいします。このコードだけだと問題ない?
0764nobodyさん03/06/22 20:51ID:???
そうですね…perlを使っているので、一気にここ来ちゃいました。
申し訳御座いませんでした。
0765nobodyさん03/06/22 21:09ID:???
>>763
foreach (@TMPSTALIST){
  $HTMLStaLine .= $_->{lineid} . "/" . $_->{staname};
}

どういう結果が欲しいのかわからんのでこれだけ。
076675003/06/22 21:35ID:a19vkXUc
>>765 長くかくとこんなことしたいんですけどねぇ。。。
    #SELECT始まり!
    $HTMLStaLine .= qq|<select name="staid" size="10" multiple>\n|;
    for ($i=0;$i<=$#GlobalLineidList;$i++){
        #沿線名表示!
        $HTMLStaLine .= qq|<option value="">----- $LINE[$GlobalLineidList[$i]]->{linename} -----</option>|;
        undef @TMPSTALIST;
        for ($j=0;$j<=$#STA;$j++){
            if ($STA[$j]->{lineid} == $GlobalLineidList[$i]){
                push (@TMPSTALIST,$STA[$j]);
            }
        }
        #seqでソート
        @TMPSTALIST = sort { (${TMPSTALIST[$a]->{seq}} <=> ${TMPSTALIST[$b]->{seq}}) } 0 .. $#TMPSTALIST;
        #沿線に属する駅名一覧を表示!
        foreach (@TMPSTALIST){
            $HTMLStaLine .= qq|<option value="|.$TMPSTALIST[$_]->{staid}.qq|">|.$TMPSTALIST[$_]->{staname}.qq|</option>\n|;
        }
    }
    #SELECT終わり!
    $HTMLStaLine .=qq|</select>\n|;
0767nobodyさん03/06/22 21:49ID:???
>>766
いや、あのさ、間違ったソースを晒されても「何がしたいのか」は分からないんだが……
0768nobodyさん03/06/22 21:59ID:???
>759
丁寧な説明有難うございます。
調子にのてもう一つお聞きしたいのですが、
リファレンスを受け取った側で、undefすると
呼び出し元もクリアされるのでしょうか?^^;

$var = hoge();
print $$var;  # うんこ
undef($var); <- hogeの$abcは要らないのでクリアしたい

その後の処理…

sub hoge {
  my $abc = 'うんこ';
  return \$abc;
}

sub { return \%dekai_data; }
大きな値とか返した場合、クリアする必要はあるでしょうか
076975003/06/22 23:46ID:MaT7PvCU
>>767

用は、
$STA[$i]->{lineid}
$STA[$i]->{staname}
($iには0から10くらい入ってる)なのに、
 push (@TMPSTALIST,$STA[$j]);
すると、
$STA[$i]->{lineid}
は値が入ってるのに、
$TMPSTALIST[$i]->{lineid}
には値が入ってないのです。
pushした直後でも。。。
0770-03/06/22 23:48ID:pFJThKfu
成功者になりたい人は読んでください!
「クーポン屋の仕事は簡単!」
「HPにバナーを貼ればOK!」
「年商3000万円も夢じゃない!」
「あなたの努力次第です。」
http://www.c-gmf.com/index1.htm
077175003/06/22 23:53ID:???
すいません、
@TMP = sort { (${TMPSTALIST[$a]->{seq}} <=> ${TMPSTALIST[$b]->{seq}}) } 0 .. $#TMPSTALIST;
とやるところを、
@TMPSTALIST; = sort { (${TMPSTALIST[$a]->{seq}} <=> ${TMPSTALIST[$b]->{seq}}) } 0 .. $#TMPSTALIST;
とやっていたのが原因でした。

$TMPSTALIST[$i]->{lineid}には値がちゃんと入っていたようです。
■ このスレッドは過去ログ倉庫に格納されています