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

【Perl】初心者コーナー Part17

■ このスレッドは過去ログ倉庫に格納されています
0001 ◆Go4ZKngPGE 02/10/14 17:24ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

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

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

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0508rubyist@カラアゲうまうま02/11/04 00:10ID:???
>>507
これまた低レベルな奴が現れたな。いちいち説明するのも面倒くさい。
perlapiのスタック管理の部分でも読め。貴様に理解できればな。

Perlの場合、関数はサブルーチンは戻り値を常に戻してるに決まってるだろ。
意味のある値とは限らないがな。
0509nobodyさん02/11/04 00:13ID:???
>>507
すまん、Perlには戻り値無しなんてないと思っていた(^_^;)
色々試してみたけど、最後にfor(;;){}なんてやると戻りに無しになるみたいだね。
頭が弱いわけじゃないとおもうが、Perlは弱いかも。
051050902/11/04 00:14ID:???
あ、俺が>>494ですから・・・
051150902/11/04 00:22ID:???
>>508を見てもっと色々試してみた。
>>484はきちんとundefを返しているわ・・・
0512_gunzip ◆eiH/XdoCNg 02/11/04 01:28ID:???
なんかニュアンスが違うような気がする。
>484とか、sub func {} やら sub func { for(;;) {} } は内部でも何も返してないよ。
(というか、XSにXSRETURN_EMPTYマクロがあるのを見てもわかるのでは)
$retval = func(); やら defined func() とかで評価したときに、PL_stackに何も無いってんで、
PerlがしゃーねーなとNullsv(PL_sv_undefだったか?忘れた)を呉れるだけ。

「戻り値をくれっ」と言えば、Perlが気を利かして適当に見繕ってくれるけど、本来は何も無いよ、というお話。
不正確な点は指摘してくれると嬉しい。
0513nobodyさん02/11/04 01:52ID:???
> Perlが気を利かして適当に見繕ってくれるけど

さすがPerl(藁
そういうところが嫌いだ・・・
0514rubyist@カラアゲうまうま02/11/04 02:00ID:???
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
0515nobodyさん02/11/04 02:06ID:???
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
rubyist@カラアゲうまうま←氏ね
0516rubyist@カラアゲうまうま02/11/04 03:07ID:???
まあ、おまえらはWebProg板に引きこもっていてくれttwことえだ・
0517デフォルトの名無しさん02/11/04 06:49ID:dvOfgMXA
皆さん、ruby粘着基地外の相手はしないでください。
すぐに松沢病院に帰るはずですから、無視、無視。
0518nobodyさん02/11/04 09:02ID:???
>>488
sendmail -t
0519マリモーマ ◆jbBCmetwgw 02/11/04 10:06ID:DAK3WKCO
print "<FORM ACTION=$cgi METHOD=post>";
for($a=0;$a<@kou-3;$a++){
print "<select name=$kos[$aipo]>";
for($b=0;$b<@icon;$b++){
print "<option value=$b>$icon[$b]";
}
print "</select>";
なぜこれで送信できるんだ?
0520nobodyさん02/11/04 10:11ID:BeYwgKh5
らくだ(リャマ)の本をみて勉強しているものです。
この本では改行を/nと表記しているんですが
実際、使う場合は¥nですよね?
\nに置き換えて書けば動くんですが
どういう違い・意味合いがあるのでしょうか。

環境はWindows、用途はCGIです。
0521nobodyさん02/11/04 10:32ID:???

フィールド切り出しなどは、awkのほうがperlよりはやいんじゃ、ないでしょうか?
0522nobodyさん02/11/04 10:37ID:???
>>520
文字コードをISOにしてみろ。\→が\になるだろ
unix系のOSじゃ\じゃなくて\を使うから<本の表記
0523nobodyさん02/11/04 10:44ID:???
>>520
/nじゃなくて\nじゃない?
(らくだ本みたことないんでわかんないけど)

それはフォントが違うだけ。日本語フォントでは、\と同じコードに\を割り当ててる。
エディタでフォントが変えられるなら、試しになんでもいいから英文フォントにしてみれ。
0524nobodyさん02/11/04 10:52ID:BeYwgKh5
522さん,523さん
なるほど。
2人の説明でばっちりわかりました。
どうもありがとうございます。
0525nobodyさん02/11/04 12:43ID:???
>>522
UNIXとかそういう問題じゃないんだが・・・

>>520
英語圏の人が書いた本は、多分ほとんどがバックスラッシュになっていると思うよ。
0526nobodyさん02/11/04 15:08ID:DJv3PW2n
ディレクトリの中にあるディレクトリの名前をリストに入れるにはどうすればいいでしょうか。
1階層のみ限定で。。。
0527nobodyさん02/11/04 15:46ID:???
>>526

opendir(DIR, "ディレクトリ名");
@name = readdir(DIR);
closedir(DIR);

foreach (@name) {
if (-d "$_") { push(@array, $_); }
}

@arrayに入るはず。
間違ってたらスマン
0528☆南幸☆02/11/04 16:09ID:???
http://www5e.biglobe.ne.jp/~nanko-m/index.htm
これはどうよ?!いいんじゃない?
0529訂正02/11/04 16:29ID:???
>>526

$dir = "ディレクトリ";

opendir(DIR, "ディレクトリ名");
@name = readdir(DIR);
closedir(DIR);

foreach (@name) {
if (-d "$dir$_") { push(@array, $_); }
}
0530nobodyさん02/11/04 17:42ID:???
文字列で指定された256進カラー"color:#aabbcc"とかの"aabbcc"だけ
を取り込んで、指定された値aを掛けて、例えばa=0.5なら、
"#555d66"を返してもらえる関数を作りたいのよ、
でも

substrで文字列2文字づつ切り出すところはいいんだけど、

切り出した文字列を16進数の数として処理(変数に代入)するやりかたがサパーリわかりません、
どなたかご伝授キボンヌ
0531nobodyさん02/11/04 17:45ID:???
>>530
perl unpackでググったらすぐ見つかるよ。
053252602/11/04 17:46ID:DJv3PW2n
>>527,529
ありがとうございます。
しかし>>529のだと@arrayには何も入らず、
>>527ならちゃんとディレクトリ名が入っているのですが。。。
何か問題があるのでしょうか。
053353002/11/04 17:48ID:???
>>531
ありがとございます、専用の関数あってよかった
053452602/11/04 18:06ID:DJv3PW2n
何度もすみません;
>>527の方法で解決したと思ったんですが、
カレントディレクトリ以外を開くとディレクトリ名が取得できません。
開けなかった場合はエラーが出るようにしてあるので、開けてはいるようです。
色々試してみると、どうやら if(-d "./dir/") のようにすると取得されないようです。
ifを抜いてディレクトリ・ファイルの区別をしないとちゃんと取得されました。
やはりカレントディレクトリだとどちらでも取得できます。
原因はなんでしょうか。。。
0535nobodyさん02/11/04 19:57ID:???
GIFファイルを読んで
アニメーションGIFかフツウのGIFか判別するには
どうすればいいんでしょうか?
0536名無しさん02/11/04 20:57ID:EBTUNl6q
GIFのことは良く知らんけど、GIFのフォーマットを調べて、
そのヘッダの情報を読み込めばよいのでは?
0537名無しさん02/11/04 21:00ID:EBTUNl6q
こんなの見つけました。
GIFフォーマットの詳細
ttp://tohoho.wakusei.ne.jp/wwwgif.htm
>>535サンの役に立つと思います。
0538nobodyさん02/11/04 21:06ID:???
>529
$dir = 'ディレクトリ';

opendir ( DIR, $dir );
@name = readdir ( DIR );
closedir ( DIR );

shift @name; #1
shift @name; #1

foreach ( @name ) {
push (@array, $_) if ( -d "$dir\/$_" );
}

こうでないか?
#1がないと、.と..も取得されてしまうが、その辺どうよ?

if文をこれにさしかえればいい。
053952902/11/04 21:09ID:???
>>538
たぶんそれが正解だと思う
0540nobodyさん02/11/04 21:18ID:???
>>538
readdirは必ず.と..を最初に返すの?
@name=grep !/^\.\.?$/,readdir DIR; #らくだ本より引用
この方がよくない?
0541nobodyさん02/11/04 21:20ID:???
らくだ本に書いてるなら間違いない!!
054252602/11/04 21:59ID:DJv3PW2n
>>529,538,540氏
できました、ありがとうございます!
ご迷惑おかけしました;
0543nobodyさん02/11/04 22:14ID:???
>>537
さんきゅ
0544nobodyさん02/11/04 22:37ID:???
ずるぼんであぷろだをつくろうとおもいCGIをいじり、cgi-binふぁいるも
つくりいざうぷしようとしたらupload.cgiとjcode.plだけがなぜかうぷ
できない。ためしにindex.htmlとかをうぷしたら正常にうぷできた。FFFTP
を使っているのだが何か問題点ある?
0545デフォルトの名無しさん02/11/04 22:55ID:???
>>544
文字コードが違うんじゃない。統一しないとまずいよ。
あと、FFFTPだったらバイナリ送信に汁が吉。
コード指定しとくと変換しちゃうからね。
0546nobodyさん02/11/04 23:01ID:???
>>545
よくわからない。詳細キボンヌ
初心者でスマソ。それともこれぐらいもわからないのならあきらめろという罠
ですか?
0547nobodyさん02/11/04 23:02ID:???
そうです
0548デフォルトの名無しさん02/11/04 23:17ID:???
>>546
第一さ、>>544の文章の読みにくさ、第二に、「うぷできない」って
物理的にアップできなかったのかどうか。ネタとも思える書き方。
漏れはさ、物理的うぷはできたが、動かそうとしたらうまくいかん
かったっていうことかとおもてレスしたんやけどな。

0549nobodyさん02/11/05 01:07ID:???
すみません、上手く説明できるか分からないのですが、
ご理解頂けたならご教授下さい。

変数$aには'あ'が入っており、
$a .= 'い'; を入れ、ログに記録します。
この時に時々、ログのデータが

あい

とならずに、

あ
い

と改行されて記録されてしまい、
データが壊れてしまう事で現在悩んでいます。
どうか助けて下さい。お願い致します。
0550nobodyさん02/11/05 01:27ID:???
>>549
肝心のログに記録する部分はどうやってるの?
0551nobodyさん02/11/05 01:35ID:???
>>526
遅レスだけどこれですっきりできたけどなぁ

chdir ($dir);
@name = glob("*");
foreach(@name) {
 if (-d) {push(@array, $_); }
}
0552nobodyさん02/11/05 01:41ID:???
あっすみません。

$DAT[$n] = "$nm,$pw,$a\n";
if(!open(OUT,">$nazofile")){ &error("ファイルに書き込めません。"); }
print OUT @DAT;
close(OUT);

という具合に記録してます。s/\n$//;などを$aに対して行っても、
効果が無くホトホト困り果てております。
更にログを見ると上記のように改行されているにも関わらず、
HTMLで見ると普通に$aの『あい』が改行されずに見える場合もあります。
普通は『あ』しか表示されないと思うのですが…。
0553nobodyさん02/11/05 01:49ID:???
>>552
s/\n$//; ではなく chomp したら?
0554nobodyさん02/11/05 02:05ID:???
あっそうなんですか?
一度chopを使ったら$aの中身が全て消えてしまって…。
chompはchopと同じように使えば良いのですか?
私、chompの使い方があまり良く分かっていないもので…。
chomp $a; と言う具合で宜しいのでしょうか?
0555nobodyさん02/11/05 02:56ID:???
>>552
それってたぶん同じファイルから@DATに読み込んでsplitしていろいろやったあと
元に戻して書き戻すっていう流れかな?
もしそうなら最初にファイルを読んだときに全行chompしてしまうのが手っ取り早い。
そのままsplitすると最後のデータだけ改行がついたままになってしまっていろいろ面倒だから。
憶測で書いたんで違ってたらスマソ。
0556nobodyさん02/11/05 02:57ID:???
chompは末尾にある改行コードを取り除く
chopは末尾1文字を取り除く
0557nobodyさん02/11/05 04:36ID:???
>>552
というかファイルロックしていないからでわ
0558nobodyさん02/11/05 04:57ID:???
しょっちゅうファイルを壊してくれる
アテにならないchompがちょと嫌い。

>>552
$param =~ s/^\s+//;
$param =~ s/\s+$//;
を試してみるのはいかが。
0559nobodyさん02/11/05 08:18ID:???
"$nm,$pw,$a\n";
を
"$nm,$pw,$a,\n";
こうする。
0560nobodyさん02/11/05 09:34ID:???
Perlの改行って\nで統一的に扱ってくれないんですか?(テキストモードで)
なんかWindowsで\x0d\x0aじゃないと上手くいかなかったような。
0561nobodyさん02/11/05 10:48ID:???
>>561
ココ?http://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
でもどこで使えばいいのかいまいちわかってない初心者な自分。
056255202/11/05 11:23ID:???
皆さん、ご指導有難うございました。
とりあえず教えて頂いた方法を試してみたいと思います。
本当にありがとうございました。
0563nobodyさん02/11/05 12:39ID:19J7tl02
zakzakがエラーだしてるわー(藁
0564nobodyさん02/11/05 13:23ID:???
今ttp://white.d51.net/yapw/yapw.cgi/RO_GPS.pmHP
に置いてあるPerlを動かそうと思い色々試しているんですが、質問があります。
Perlの勉強をしようと思い一週間でマスターするPerl for windowsという本を買い、
本に付いていたjperl for DOSを入れパス設定をすませPerlを実行できる環境は一応整ったんですが
上記のHPのPerlが動きません。もしかしてjperlでは動かないのでしょうか?
ActivePerlで動くとtopに書いてあるのですが、jperl,perl,ActivePerlの違いがいまいちわかりません。
どなたかご指導お願いしますm(_ _)m
0565nobodyさん02/11/05 13:34ID:???
>>564
動かないというのは、何かエラーが出たの? それだけじゃわかりまへん。
056656402/11/05 13:43ID:???
起動方法はrotoold.plファイルがあるフォルダに移動し、「jperl rotoold.pl」で起動という感じです。

確認のため再度行ってみたところ↓の分が表示されました。(先程までは何も起こりませんでした

KKCFUNC が組み込まれました.
マイクロソフトかな漢字変換 バージョン 2.51
(C)Copyright Microsoft Corp. 1992-1993
Can't locate IO/Select.pm in @INC (@INC contains: c:/usr
djgpp/lib/perl5/site c:/usr/djgpp/lib/perl5/site .) at r
BEGIN failed--compilation aborted at rotoold.pl line 3.
これは正常に起動していると考えてもokなのでしょうか?

ちなみに先程まではCドライブにrotooldフォルダを置いて起動していましたがDに移動してみたところ、この表示がでました
0567nobodyさん02/11/05 14:02ID:???
>>566
use Select; って行があると思うが、Select.pm ってモジュールを探し損ねてるんじゃ?
056856402/11/05 14:24ID:???
エディタでPerlファイルを開いたところuse Selectという行がありました。
Select.pmモジュールについてですがC:JPL5005\LIB\PERL5というフォルダにはいっているのを確認しましたが
モジュールを探し損ねてる場合どういった処置を行えばよろしいでしょうか?
0569&rlo;こんう&lro;02/11/05 16:04ID:???
test
0570nobodyさん02/11/05 16:26ID:???
しっつもーん!

undef $/;
や
$/="";
は便利だけど、

----------
みたいなものを読み取る時の区切りにする方法ってありますか?


あれば教えてください。
0571nobodyさん02/11/05 16:57ID:???
--------------------------------------
ファイルAの中に
require'ファイルBへの相対パス';
--------------------------------------
ファイルBの中に
require'ファイルBからファイルCへの相対パス';
--------------------------------------

と書いてあって、
ファイルAを実行した場合、
ファイルCが正常に読み出せる術ってありますか?
0572nobodyさん02/11/05 17:01ID:???
>.571
絶対パスで書けば即解決。
0573nobodyさん02/11/05 18:37ID:???
=~ s/\n//g;
=~ s/[\n\r]//g;

上は分かるのですが下の意味が分かりません。
これはどういう動作なのでしょうか?教えて下さい。
0574nobodyさん02/11/05 18:43ID:???
>>573
\n または \r をすべて削除
0575nobodyさん02/11/05 19:02ID:???
あ…すいません(汗
\rとは一体どういう働きをするのかお聞きしたかったのです。
聞き方が悪くてごめんなさい。
0576nobodyさん02/11/05 19:21ID:???
>>575
carriage return
0577nobodyさん02/11/05 19:25ID:???
>>575
改行コードは\rと\nが混在してるから両方取り除くって事だろ?
057857502/11/05 19:42ID:???
>>576さん、577さんありがとうございました。
なんかややこしく考えてたみたい。助かりました。
0579nobodyさん02/11/05 19:44ID:???
一時間おきにCGIを実行する方法ってありますか?
0580nobodyさん02/11/05 19:48ID:???
>>568
perl はモジュールのパスを @INC という配列で覚えている。
ここにお望みのパスが登録されていなければ、スクリプト上で
モジュールを読み込む前に、パスを加えてやればいい。

BEGIN { unshift @INC, 'C:/JPL5005/LIB/PERL5' }
use IO::Select;

これと同じ事は

use lib 'C:/JPL5005/LIB/PERL5';

でもできるが、当然 lib.pm が見つからなければエラーになる。

>>571
require もファイル名だけ指定すれば @INC から探してくれる。

require 'jcode.pl'; # パスを明示しない

ファイル B や C がライブラリかモジュールなのなら、
@INC に登録されているディレクトリに置くか、
上述のようにパスを示してやればいい。単に設定ファイルを
ロードするような目的なら、絶対パス指定を薦める。
058157002/11/05 20:16ID:???


私にもレスください


0582nobodyさん02/11/05 20:22ID:???
>>570


わかりません

0583rubyist@カラアゲうまうま02/11/05 20:28ID:???
$/="-------------------";
正規表現は指定できない。awkならできる。
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> awk >>> perl
0584nobodyさん02/11/05 20:34ID:???
あとでsplitじゃだめなのか?
0585名無しさん02/11/05 21:41ID:Bk/NbLLY
ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強
ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強
ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強
ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強
ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強ruby最強
0586nobodyさん02/11/05 22:13ID:???
rubyって何?
0587nobodyさん02/11/05 22:18ID:???
ruby最強、でいいんだけど、根拠がないとね。
対応するソースとか機能の紹介してくれれば
比較のやりようもあるんだけど、全然教えてくれないし。
0588nobodyさん02/11/05 22:20ID:???
rubyってそんなにいいの?
興味はあるんだけどなかなか気がすすまない
0589nobodyさん02/11/05 22:33ID:FHcnSReB
教えてください
他のサーバーにあるライブラリをcgiに読みこませたいんですけど、
単に
require "http://www.〜省略〜/test.pl";
と書いても読めません。

読みこめる方法はないでしょうか?
よろしくお願いします。
0590鮎川02/11/05 22:35ID:???
1995 AA倶楽部
1995 BB軍
1995 CCを考える会
1998 DDの協力会
1999 EE観察の会
1999 FFに親しむ会
1999 GGを守る会
2000 HHを探る会
2000 IIネットワーク
-------------------
を下のようにしたい。
-------------------
1995 AA倶楽部,BB軍,CCを考える会
1998 DDの協力会
1999 EE観察の会,FFに親しむ会,GGを守る会
2000 HHを探る会,IIネットワーク
-------------------
そこで、イメージとしては

for $i (1995 1998 1999 2000){

@year=$i;
push @year $_;

}
print @year;

のようなリズムで書きたいですが、これ以上、手が動きません。

だれか私を助けてください。

0591 ◆hMJAPH9PWA 02/11/05 22:41ID:???
>>589
HTTPなりFTPなりで取ってこないと無理だよ。
素直にコピーしてください。

>>590
年をキーにしてハッシュを使うといいよ。
0592鮎川02/11/05 23:16ID:???
イメージとしてはこんな感じでしょーか?

while (<>){
($name,$year)=split /:/;
$years{$year}=$name;
}


for $year (keys %years){
print "$year",$years{$year},"\n";
}
0593nobodyさん02/11/05 23:35ID:???
わかった、Rubyは最強、AWKも良い。
さぁPerlの話に戻そうか。
0594nobodyさん02/11/05 23:46ID:+eUS3bf8
すいません、Perlにおける無名参照というのは、やっぱりプログラム終了までにundefで開放しなければいけないのでしょうか。

$ref=[];
$ref=1; <-何かで上書きして参照を抹殺
↓
メモリリーク?
0595nobodyさん02/11/05 23:50ID:???
>>594
Perlにメモリリークなんてあるのか?
そもそもCのようにメモリを操作することはできないんじゃ・・・
0596 ◆hMJAPH9PWA 02/11/06 00:22ID:???
>>592
イメージ的にはそうだね。あと一歩、あと1byteあればとりあえず動きそう。

>>594
ガベージコレクションがあるから問題ないよ。それがPerlのいい所。
059759402/11/06 01:50ID:???
ありがとうございます!安心しました。
とりあえず、”ガベージコレクション”を検索してキマッス!(;゚Д゚)
0598nobodyさん02/11/06 09:17ID:???



CPANってなんて読むのですか?




0599nobodyさん02/11/06 09:22ID:???
「こっぺぱん」
0600nobodyさん02/11/06 10:03ID:???
grepコマンドではなくて、
ワンライナーでperlのgrep関数を使いたい時って、どんな時ですか?





0601nobodyさん02/11/06 11:47ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0602nobodyさん02/11/06 12:11ID:???
しーぱん。
0603nobodyさん02/11/06 13:59ID:3zAQzaHu
すいません、突然ですが質問させてください。

$eigyou_jikan{'土'} = "09:00-13:00";
$eigyou_jikan{'月火水木'} = "09:00-19:00";
$eigyou_jikan{'金'} = "09:00-21:00";

こういった連想配列のkeyを曜日順にソートして
書き出すにはどうしたらよいでしょうか?

曜日順ソートルーチンを作ったほうがよいのでしょうか?
0604nobodyさん02/11/06 14:33ID:???
sendmailでメールを送ります。
宛先が存在しないとfromに設定したアドレスに failure notice とかいう
メールが自動で来ますよね。
こういう風にアドレスが存在しない時cgi側で判断するにはどうしたらいいんですか?
0605nobodyさん02/11/06 14:38ID:???
何行目かのどっかにあるファイルポインタを
行頭に持ってくるワザってないですかね。
0606nobodyさん02/11/06 14:42ID:???
>>603
曜日は数字のままにしておいて出力する時に文字に変換するとか
0607nobodyさん02/11/06 14:48ID:???
>>604
送ってみなくちゃ分からない。
よって不可能。
■ このスレッドは過去ログ倉庫に格納されています