トップページ⇒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を見よう。
0054名無しさん@お腹いっぱい。01/09/15 16:15ID:???
>>53
nslookupを呼び出すのは禁止なんですよね。
困った困った。
0055名無しさん@お腹いっぱい。01/09/16 04:15ID:D8MO0CAo
aa
0056名無しさん@お腹いっぱい。01/09/16 04:24ID:D8MO0CAo
-wTスイッチとか use strictは、もしかしてコマンドラインじゃないと意味無しですか?
HTTPD立ち上げてブラウザからhttp://127.0.0.1/で掲示板とか作ってるんですが・・。

各所で-wT使え strict使えとか言われてるのに使えなくて困っております。
0057名無しさん@お腹いっぱい。01/09/16 05:14ID:???
1 にも書いてあると思うんだが, もうちょっと「使えなくて」をちゃんと説明してくれ
0058あぼーんNGNG
あぼーん
0059 ◆PerlPiVg 01/09/16 11:57ID:???
>>56
多分、-wT は
#!/usr/bin/perl -wT
がやりたいんだと思われ。

で、use strict の使い方と意味知ってますか。
0060名無しさん@お腹いっぱい。01/09/16 13:02ID:???
>>56
というわけで、perldoc strict かな。

>>59
良いトリップですな。
0061名無しさん@お腹いっぱい。01/09/16 14:08ID:VeBCjLxg
fetchmailというPOPサーバからローカルスプールへメールを
取り込むプログラムがありますが、同じようにWebベースの
メールをローカルスプールに取り込むperlスクリプトを作りたい
のですが、それを書くのに便利なモジュールとCGIとの会話に
必要な知識が載っている資料(RFCかweb)を知っていたら
教えていただけませんか。
0062名無しさん@お腹いっぱい。01/09/16 15:24ID:???
>>61
そんな都合の良いもんねーよ。

もっと基本からはじめろ。
0063名無しさん@お腹いっぱい。01/09/16 16:15ID:HiUGkhyw
>>62
そうでしたか。結構CPANとかには「そんな都合のいいもの」って
思うようなものもあるので、誰かが作っているかもって思ったの
です。LWPとか使って書くしかないってことですか。

>もっと基本からはじめろ。
車輪の再発明を避けようと、似たようなモジュールがないか探した
だけで、基本に戻れってことですか?
0064名無しさん@お腹いっぱい。01/09/16 16:21ID:???
Webmailなんてサイトによって全然違うんでは?
LWP以上の何を求めてるのかが解りませんが
hotmail.pmみたいなのを探してるのか。。。
0065名無しさん@お腹いっぱい。01/09/16 17:06ID:yvDq7DHw
>>64
たしかに違いますが、大手のinfoseek, exciteくらいなら使っている
人も多いし、webメールが面倒って思って作っているひとがいるかも
って思ったので^

>LWP以上の何を求めてるのかが解りませんが
各WEBの違いを吸収してくれるモジュールがあれば…ってことです。

>hotmail.pmみたいなのを探してるのか。。。
それってあるのですか? CPANとgoogleで検索かけても見つけ
られませんでした。
0066名無しさん@お腹いっぱい。01/09/16 17:40ID:???
だから無いってば、大体本家の仕様がかわる度に(以下略
そもそも世界中に一体何千のサービスがあって(以下略
0067名無しさん@お腹いっぱい。01/09/16 17:45ID:MGixgscI
>>66
了解。
0068名無しさん@お腹いっぱい。01/09/16 18:46ID:9Q.bsKq2
ttp://www.f2s.comのフリースペースに
ttp://www4.tkcity.net/~elmo/accessory/wforum.htmlを設置しようと思い、
「#!/usr/local/bin/perl」のパスを「#!/usr/bin/perl」に変更し
cgi-binとbbsディレクトリのパーミッションは755に変更。
後は以下のように変更しました。
wforum.cgi(755)
wforum.log(644)
wf_admin.cgi(755)
index.cgi(755)
1.html(644)
pastno.dat(644)
index.html(644)
title.gif(644)
jcode.pl(644)
fold.pl(644)
accesslog.log(644)
code.log(644)

ですが、どうしても「500 Internal Server Error」と出てしまい動きません。
たぶんパーミッションが間違ってるのかな?と思いますが
どう変えれば良いのかがわかりません。
誰か教えて下さい、お願いします。
ちなみにFTPソフトは「Fetch3.0.3J2」を使ってます。
0069名無しさん@お腹いっぱい。01/09/16 18:56ID:???
>>68
頑張ってください、と言いたい所だが。
スレ違いです。

CGIだけど、なんか質問ある?part3
http://corn.2ch.net/test/read.cgi?bbs=php&key=988727833&ls=50
0070 01/09/16 20:16ID:???
>>69
つーか、 use CGI::Carp してみたら助かること多いのにね。
0071名無しさん@お腹いっぱい。01/09/16 20:31ID:???
>>68
KCatch.pm使ってエラーメッセージ表示できる。
続きはCGIスレでやってね。
0072名無しさん@お腹いっぱい。01/09/16 20:33ID:???
http://www4.tkcity.net/~elmo/accessory/wforum_readme.txt
00736801/09/16 20:53ID:gRdNqaZI
すみませんでした。。。
0074名無しさん@お腹いっぱい。01/09/16 21:17ID:iOe1OIlA
クッキーの内容によってアクセス拒否を行いたいんですが、
参考になるルーチンなどありますでしょうか。
0075名無しさん@お腹いっぱい。01/09/16 21:25ID:???
 無い、以上。
0076名無しさん@お腹いっぱい。01/09/16 22:30ID:???
ココは厨房の憂さ晴らし場ですか?
0077名無しさん@お腹いっぱい。01/09/16 22:44ID:???
>>70
確かに。
私はKCatchじゃなくてCGI::Carp派です。

書いとくか…
BEGIN {
use CGI::Carp qw(carpout);
open FH, ">> ./error.txt";
carpout(*FH);
}
0078名無しさん@お腹いっぱい。01/09/17 00:52ID:???
クッキーの内容でアクセス拒否って
クッキー切られてたら意味ない気がしたのだが
0079あぼーんNGNG
あぼーん
0080名無しさん@お腹いっぱい。01/09/17 00:59ID:???
内容取れなくても拒否だろ。
0081名無しさん01/09/17 22:02ID:vlnxJJbs
パターンマッチで「ラーメン」など「ー」を検出しようとすると
unmatched [] in regexp at ファイル名が表示されるんですけど
エラーをなくすにはどうしたらよいですか?
0082名無しさん01/09/17 22:06ID:???
「ラ(.*)メン」で解決しました
0083名無しさん@お腹いっぱい。01/09/17 22:14ID:???
頻出ネタですな。
\Q \E
quotemeta
0084名無しさん@お腹いっぱい01/09/17 22:34ID:???
ファイル移動に関する質問です
$a : 移動前のファイル名
$b : 移動先のディレクトリ名
この場合、どんな風に書けばいいのか教えてください
0085名無しさん@お腹いっぱい。01/09/17 22:57ID:???
>84
$c : 移動前のディレクトリ名
rename("$c/$a","$b/$a");
0086名無しさん@お腹いっぱい。01/09/17 23:49ID:IPBfuQws
use File::Copy;
move($a,$b);
0087名無しさん@お腹いっぱい。01/09/18 05:01ID:???
>>84
蛇足ながら。
$a,$bはsort用の特殊変数なので
普通の用途では使わないほうがいい(かもしれない)
00888401/09/18 07:57ID:???
おかげさまで解決しました
0089名無しさん@お腹いっぱい。01/09/18 21:30ID:???
カレントディレクトリ名を取得するのって
どうやってやるんでしょうか?
0090名無しさん@お腹いっぱい。01/09/18 22:23ID:???
>>89
use Cwd;
$dir = cwd();
0091名無しさん@お腹いっぱい。01/09/18 23:07ID:???
>>90
わ。そんな簡単な方法があったのですか。
ありがとうございます。感涙です。
0092名無しさん@お腹いっぱい。01/09/18 23:27ID:s6QOmheA
入力された文字列を80Byte以下に分割したいと思ってます。
(分割結果を個別で携帯メールに送る)

日本語文字列の分割はどうすればいいのでしょう?
substr使って以下のようにすると、1byteコードが入ったところで化けます。

$max_byte = 80;
$offset = 0;
for($i=0;;$i++){
@mailbody[$i] = substr($mailbody,$offset,$max_byte);
$offset +=length(@mailbody[$i]);
if(@mailbody[$i] eq ""){
last;
}
}
よろしくお願いします。
0093名無しさん@お腹いっぱい。01/09/19 00:24ID:R7HmAIag
>>92
正規表現を使う
あと、@じゃなくて$な
0094名無しさん@お腹いっぱい。01/09/19 02:33ID:???
>>92
つーか、日本語は2byte(または3byte)って事知ってるか?

@と$間違うレベルじゃ多分無理だろうな。
0095名無しさん@お腹いっぱい。01/09/19 02:47ID:qAnhwpTs
perl6からは、初心者が@と$と%間違うのは少なくなるだろう。。。。
逆に間違う古参が出てくるだろうが。
0096あぼーんNGNG
あぼーん
0097名無しさん@お腹いっぱい。01/09/19 05:36ID:xKEtyMaE
>>92
93と94の言ってることがわからなければ、たとえばこのへんを参考に。
http://www.din.or.jp/~ohzaki/perl.htm#JP_Split

そのあと>>2-3のリンク先も全部読んでおくといいかも。
2ヶ月もがんばれば全部読めるっすよ。
0098名無しさん@お腹いっぱい。01/09/19 06:33ID:???
ローカルでなが〜いスクリプト動かしたいんですけど
タイムアウトしてサーバーがみつからんです。っていいます。
なんとかしてください。
0099名無しさん@お腹いっぱい。01/09/19 06:42ID:???
>>98
ローカルで?サーバーで、の間違いでしょ?
forkして子プロセスにやらせるとか
やること記述したファイル生成して、cronに拾わせるとか
0100名無しさん@お腹いっぱい。01/09/19 07:02ID:???
↑ アンタ甘いな、この聞き方からしてなが〜いスクリプトってのはフェイクなんだよ
良く聞いてみたらなが〜いのはもちろんhelloperlも動かない
つーかHTMLも表示出来ん、Pingも飛ばねえってオチ   これ基本ね
0101名無しさん@お腹いっぱい。01/09/19 07:18ID:???
>98
ブラウザ表示がタイムアウトになっても処理は続いてる。
画面に表示されないだけ。
表示内容を見たいだけならスクリプトの最後に表示させたい内容を
外部保存するように書き換えて、あとからそのHTMLだけ開けばいい。
0102名無しさん@お腹いっぱい。01/09/19 07:22ID:???
こんな時間にレスがつくとは!!
なが〜いスクリプトってのはただ単に
入れ子になってるだけなんですけど
httpdがずっと通信してますよー。ってなってて
もうやめた。って感じで止まり、鯖見つからんかった事にしといてー。
ってなるんです。
0103じゃ・・01/09/19 07:24ID:AuWg3XVU
頭でヘッダ吐いちゃえ  :-)
0104名無しさん@お腹ごろごろ01/09/19 14:53ID:ZyNXuusg
Windows98+ActivePerlの環境で・・・
Perlスクリプトの設置場所とカレントディレクトリを「c:\temp」にした状態で
「c\temp\sample.txt」を「c:\temp\old\sample.txt」に移動するにはどうすれば良いでしょうか
0105名無しさん@お腹いっぱい。01/09/19 14:56ID:???
>104
ログ見ろ!
>84-86
0106名無しさん@お腹ごろごろ01/09/19 15:06ID:???
え°?
[[解決]]
0107コアだんぷ01/09/19 15:35ID:hUyzFQTQ
みんなってどれくらいでPerlとか使えるようになったの?
例えば簡単な掲示板作れるくらいのレベルに達するのにどれくらい
かかった?
先日友人に1ヶ月くらいやってやっと簡単な掲示板作れるレベルになった
といわれてビクーリした。そいつは仕事から帰ってずっとPerlやってたみたいなんだけど
そんなにかかるの?
ちなみに俺は簡単な掲示板作れるようなレベルになるまで1週間かからなかった記憶があります。
個人差もあると思いますがだいたいどれくらいでいけるもんなのですか?
0108P01/09/19 16:05ID:???
Perlに割いた時間によるでしょうね
やりたいことができれば習熟度や経歴なんて関係ないよ〜

私は掲示板のアレンジは即日可能でしたが
特に目的がなかったのでその後は進歩していません
0109名無しさん@お腹いっぱい。01/09/19 16:06ID:???
>107
Perl以外のプログラムを組んだ事あるかないかによる。
組んだ事がなくてもその知識があるかないかによる。
文系か理系かにもよる。

漏れは改造から入ったから、簡単な掲示板を1から自分で作ったのが
いつだったか全然覚えてない。(ぉ
0110名無しさん@お腹いっぱい。01/09/19 17:00ID:tAq/5NMs
すいません。掲示板の通知機能で複数のメールアドレスを指定したいとき、
$mailto = "'x_x_x@xxx','x.x.x@xxx','xxx@xxx',"
こんな書き方で大丈夫でしょうか?
0111名無しさん@お腹いっぱい。01/09/19 19:09ID:???
BBSを書いてるんですが、ログの扱いでちょっと考えてます。
2chの様に複数のスレッド(トピック)が有ってそこにレス付けて行く
BBSの場合トップソート(あげ機能)の有無に関わらずログの整理が
必要ですよね。
多くの掲示板みたいに
open (FH,"./log.txt");@log = <FH>;
ってやるのは少し気が引けます
もし while (<FH>) で何とかしたいとしたら、ここみたいに
スレッド毎にログファイルとsubject.txtみたいなテキストを用いる
しか無いんでしょうか。 ログファイルが増えるのもちょっとなぁ
と思ってるんですが・・・
 
0112sage01/09/19 20:42ID:???
>110
それじゃ無理。具体的な掲示板スクリプト書いてくれ

@Mailto('[email protected]','[email protected]','[email protected]'); #送りたいメールアドレスを好きなだけ書く
foreach $Mailto (@Mailto){掲示板スクリプトの送信処理;}
大まかな考え方はこんな感じだと思うよ

>111
複数の方法がある場合、ナニを優先させるか明記しないとレス不可能
というかナニがしたいの?
0113sage01/09/19 22:59ID:???
↑の4行目
@Mailto = ('〜以下省略〜');ですよ。「=」抜けてました(汗々)
0114名無しさん@お腹いっぱい。01/09/19 23:11ID:RdNP37os
>>110のでもいいんじゃないかな?
To: mail_addr@host, nail2@host, ...
で送れるでしょ。

ただ、ダブルクオートでくくると、変数展開がまずいことにならないかな。
$mailto = '"x_x_x@xxx","x.x.x@xxx","xxx@xxx"';
の方が安心かも。
011511401/09/19 23:15ID:RdNP37os
サッキノとリケシー。
動かしているスクリプトの処理によっては、えらいことになりかねない。
011611001/09/20 00:32ID:xeOjatSc
”’x_x_x@xxx’”だとうまくいきませんでしたが
’”x_x_x@xxx”’だと出来ました。
最初は単純にカンマで区切っただけだったんですが($mailto = '[email protected],[email protected],[email protected]';)
これだと最初のやつが送信されなかったんです。_ があったのが悪かったんでしょうか???
なぜだかよくわかってませんけどこれから勉強します。
112さん114さんお答えどうもありがとうございました。
0117名無しさん@お腹いっぱい。01/09/20 04:24ID:tvjA6dmg
前板(現レンタルサーバ)でのチャットスレがとても勉強になると聞いたんですが
探しても見つかりませんでした。
どこで見られますか?
011892401/09/20 04:48ID:???
>>116
perlじゃなくて、sendmailの仕様の話だろ
0119名無しさん@お腹いっぱい。01/09/20 07:33ID:???
2つの配列同士から同じ要素含んでないか調べるのって
どうやるんですかーー?
ちなみにgrepって検索文字に変数使えないんですか?
例えば grep ~ /$hoge/,@kensakutaisho;
みたい$hogeつかえないのですか?
0120あぼーんNGNG
あぼーん
0121らすかる01/09/20 07:50ID:MTc8pgUs
今掲示板のスクリプト書いてるんですが
スクリプトを1つのファイルにまとめるか複数に分けるか悩んでます。
エラー処理のところなどを別ファイルにしようかと思うのですが
やはり複数に分けた方が処理は軽くなるのでしょうか?
それとも複数でも全てを1つのファイルにまとめても大してかわらないのでしょうか?
0122名無しさん@お腹いっぱい。01/09/20 07:56ID:o56tunDA
web上でcgiからcgiを作るって危険なんですか?
0123名無しさん@お腹いっぱい。01/09/20 08:17ID:???
map {$ck{$_}++} @a1;
@a3 = map {$ck1{$_}} @a2;

@hits = grep {$_ =~ /$hage/} @search_target;
↓
@hits = grep {/$hage/} @search_target;
↓
@hits = grep /$hage/,@search_target;
0124名無しさん@お腹いっぱい。01/09/20 09:19ID:???
>121
ログを1ファイルで管理する場合は保存件数を制限するだろ?
複数ファイルで管理するとそれを探すステップが必要なので
入門レベルで処理の重い/軽いを気にするなら1ファイル管理がいいと思うが?

>122
作るcgiの完成度と作られるcgiの内容による
0125名無しさん@お腹いっぱい。01/09/20 09:34ID:???
>>119
条件によっていろいろなので一概に言えない。
@dupe = grep {$tmp{$_}++} @array1, @array2

>>121
分けたほうが遅くはなるけど、たいして変わらない。
分けるなら読み込みのスクリプトと、書き込みのスクリプトで分ける。
2chもそうだよね。
0126名無しさん@お腹いっぱい。01/09/20 15:34ID:???
$ENV{'QUERY_STRING'} = 'name=hogehoge&year=22&sex=men&pass=77777';
だったとして

@querys = split (/&/,$ENV{'QUERY_STRING'});
foreach (@querys){
  ($name,$value) = split (/=/,$_);
  $fromin{"$name"} = $value;
}

これは理解出来るとして、

@querys = split (/&/,$ENV{'QUERY_STRING'});
foreach (@querys){
  ($name,$value) = split (/=/,$_);
  $fromin{"$name"} = $value;
}
  $name = $formin{name};
  $year = $formin{year};

これは何故? 殆どの配布スクリプトがこんな感じ
なんですけど、、何で

@querys = split (/&/,$ENV{'QUERY_STRING'});
foreach (@querys){
  ($name,$value) = split (/=/,$_);
  unless ($name =~ m/^(name|year|sex|)$/){next;}
  $$name = $value;
}

これで済ませないの?
0127名無しさん@お腹いっぱい。01/09/20 15:48ID:???
右へ倣え。
もしくは、盲目的「ソフトリファレンスは使うな」。
もしくは、マッチの負荷を気にしている。

つーか、ハッシュのままでいいじゃん。
012812701/09/20 15:52ID:???
ごめん。s/ソフト/シンボリック/
0129名無しさん@お腹いっぱい。01/09/20 16:21ID:UtkSX9Kc
>>126
なんかスクリプトの中にパラメータを
>m/^(name|year|sex|)$/){next;}
って書くのはマジックナンバーの埋め込みみたいに
感じるんですけど。メンテナンスが面倒になりませんか?
013012601/09/20 16:34ID:???
即レス感謝〜
一番の理由はマッチングのコストなのかな、、
シンボリックリファレンスは多用すると参照先が曖昧になってしまうから
上級者さんが、使うなー って言ってるんですよね

>メンテナンスが面倒になりませんか?
これは上の例の2つ目でも同じ事ですよね 例えばaddを足したら
$add = formin{add} を足さないといけないという部分では

色んなスクリプト読んでるんですが、何故か2つめのやり方が凄く
多いんです。で、3つ目は一度も見た事無いんで、何か落とし穴でも
有るのか、それともこう言う基本部分のリファレンス?みたいなのが
どっかに有って、みんなそれをコピーして使ってるのかな
と思ったんです perlってほんと色々な書き方が有って困ってるのに
この部分だけ判子押したように同じだったんで。。。
0131名無しさん@お腹いっぱい。01/09/20 16:46ID:X2sVnNMY
たしかに2番よりは3番の方がいいかも知れん。
マジックナンバー(マジックストリング?)なんてどうにでもなるし。
ただ、入力データだということをハッキリさせたいのでハッシュの方がいいとは思うが。
そんな俺は自作のCGI::Queryで$q->param("foo")だけど。
0132ぱーるやろう01/09/20 16:47ID:???
E-mailアドレスとURLをチェックする正規表現教えてください。
0133名無しさん@お腹いっぱい。01/09/20 17:00ID:zGNHdu/.
>>132
>>2-5のリンク先見れ
013411901/09/20 17:41ID:???
>>123
>>125
どうもありがとです。
それで試してみます。
123の矢印は省略可って事ですよね?
>>132
どっかのサイトにあったなぁ。
メアドも例外みたいのがあってそれをはじかず
変なアドレスだけをはじいていくってやつが。
ちなみに超長かった。
例外考えないと
if($email !~ /[\w\.\-\&]+\@[\w\.\-\&]+\.[\w\.\-\&]/){&error("メアド変");}
($siteurl !~ /^https?:\/\/[\w|\:\@\-]+\.[\w|\:\!\#\%\=\&\-\|\@\~\+\.\?\/]+$/i){&error("URL変");}
か?
013511901/09/20 17:41ID:???
if($email !~ /[\w\.\-\&]+\@[\w\.\-\&]+\.[\w\.\-\&]/){&error("メアド変");}
elsif($siteurl !~ /^https?:\/\/[\w|\:\@\-]+\.[\w|\:\!\#\%\=\&\-\|\@\~\+\.\?\/]+$/i){&error("URL変");}
だ。
0136名無しさん@お腹いっぱい。01/09/20 18:15ID:???
Perl上級者って名乗れるのはどれくらいになってからですか?
0137名無しさん@お腹いっぱい。01/09/20 18:18ID:JzJOOdyA
>>136
とりあえず自分で上級者って言わない奴。
0138名無しさん@お腹いっぱい。01/09/20 18:23ID:???
>>136
Inter National Perl Coding Qualification (INPCQ)
Master クラスを取得してから
0139名無しさん@お腹いっぱい。01/09/20 18:27ID:???
>>136
Perlを使いこなせるようになってから
014013601/09/20 18:39ID:???
>>138
googleで検索しましたが情報がありませんでした。
どのような資格(?)なのですか?

おしえれ。
0141名無しさん@お腹いっぱい。01/09/20 19:12ID:???
初級:モジュールを理解し、汎用的なサブルーチンをモジュールに追い出す
中級:CPANにモジュールを登録し、Perl文化に貢献する
上級:Perlのコアの開発に携わる
神:ラリーウォール
0142名無しさん@お腹いっぱい。01/09/20 19:24ID:???
絶対神:KENT
0143名無しさん@お腹いっぱい。01/09/20 19:54ID:???
>>142
不覚にもワラタ
0144名無しさん@お腹いっぱい。01/09/20 20:58ID:???
>141
げ。どうしよう。初級者じゃん俺。もっとヘボいと思ったのに俺。
0145初心者++01/09/20 22:18ID:???
俺も興味有るなあ
0146稲垣(゚д゚)ゴルォ01/09/20 22:26ID:???
kent 照りカット
0147名無しさん@お腹いっぱい。01/09/20 23:01ID:???
>>146
ツマラン
0148名無しさん@お腹いっぱい。01/09/20 23:45ID:dlBnP3mg
Perl初心者が学習用に見るなら、どのスクリプトがおすすめですか?
0149名無しさん@お腹いっぱい。01/09/21 01:45ID:D8Pk/8eM
二つの配列から同じ要素を見つけて
その要素以外を記録する方法がやはりわかりません。
というかうまく動きません。
これだ!というのがあれば教えてください。
0150名無しさん@お腹いっぱい。01/09/21 02:05ID:DP/oQEFM
>>149
@a = (1,2,3,4,5,6);
@b = (2,4,6,8,10);

foreach (@a) {$hash{$_} = ""}
foreach (@b) {exists($hash{$_}) ? delete $hash{$_} : print "$_\n"}
foreach (keys %hash){print "$_\n"}

ぱっとしないけど。
015114901/09/21 02:16ID:D8Pk/8eM
どうもありがとう!
今自分でアイデア出てやっとこさ作れたけどその
数倍長いよw
いや親切さん多くてうれしいですね。どうもでした。
015215001/09/21 02:18ID:DP/oQEFM
@a = (1,2,3,4,5,6);
@b = (2,4,6,8,10);

foreach (@a, @b) {$hash{$_}++}

# 重複してるの
foreach (sort keys %hash) {if ($hash{$_} >= 2) {print $_, "\n"}}

# 重複してないの
foreach (sort keys %hash) {if ($hash{$_} == 1) {print $_, "\n"}}

こっちのほうがええかも
0153Perl上級者01/09/21 02:55ID:???
Perl5.005.3と5.6でなぜ結果が違うのか教えれ。

#!/usr/bin/perl

$message = "Hello";

print "子プロセスを起動....\n";
$pid = fork();
if($pid < 0){
die("子プロセスの作成に失敗しました。\n");
}elsif($pid == 0){
$message .= " World";
print "\$message = $message\n";
exit(0);
}
wait();
print "\$message = $message\n";
exit(0);
0154Perl上級者01/09/21 02:59ID:???
Perl5.6
./log.plでも./log.pl > logfile

子プロセスを起動....
$message = Hello World
$message = Hello

---------------------------
Perl5.005.3
./log.pl
子プロセスを起動....
$message = Hello World
$message = Hello

./log.pl > logfile

子プロセスを起動....
$message = Hello World
子プロセスを起動....
$message = Hello
■ このスレッドは過去ログ倉庫に格納されています