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

Perlコーディング初心者質問スレ Part 48

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/04/26(水) 18:00:50ID:RLbnve1J
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0666nobodyさん2006/05/20(土) 19:04:52ID:???
>>665
@aho = (3,4,3); $aho[1] eq 4 みたいに配列の要素へアクセスするときはブラケットの中に数字を入れる。
0667nobodyさん2006/05/20(土) 19:18:42ID:???
>>666
失礼。もう1ついいですか。
配列は「@wday」と書くものだとずっと思っていたのですが、ここでは「$wday」となっています。
これはどういった意味があるのでしょうか?

また、>>665はどういった処理をしているのでしょうか?

何度も申し訳ないです。。。。 よろしくお願いします。
0668nobodyさん2006/05/20(土) 19:49:52ID:???
>>665
$var = (11,22,33,44)[2];
↑33が入る
0669nobodyさん2006/05/20(土) 19:52:35ID:???
('Sunday' ...)がリスト(配列)
それの$wday番目の要素を$wdayに代入
0670665,6672006/05/20(土) 20:10:17ID:???
>>668-669
ありがとうございます。
とても参考になりました。
0671nobodyさん2006/05/20(土) 20:10:52ID:???
本当に分かったんかなぁ?
0672nobodyさん2006/05/20(土) 21:04:01ID:???
自分も初心者ですが。。。

これ↓はリストを配列に代入。

@wday = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');

個々の配列要素にアクセスするときは、@ → $にする。なぜなら個々の要素は普通の値(もしくは文字)だから。
@だと配列全体を表すことになる。

$a = $wday[2]; # (0から数えて)2番目の要素である Tuesday を $a に代入
print $a; # Tuesday と表示

これ↓だと先述したリストを一旦、配列に入れるというのをぶっとばして、いきなりリストの2番目の要素に
アクセスしている。

('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday')[2]

すなわち、その値は、Tuesday という文字。

下の代入は、まず$wdayには数字が入っていて、リストの何番目の要素を取り出すかを決めている。
例えば、$wdayに2が入っていれば、Tuesday が選ばれたことになる。そしてその Tuesday を$wdayに代入している。
$wdayは最初、数字だったのがこれにより文字列になるわけですね。

$wday = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday') [$wday];
0673 ◆TWARamEjuA NGNG
# --- 鯖時間をそれなりに変換♪
# Exchange_Date(mode, unixtime)
# mode が 'jp' の時には日本語で返す。
# unixtime time(3)の値。
sub Exchange_Date{
my $mode = shift;
my @date = localtime shift;

@date = (
 $date[5] + 1900,
 ('01' .. '12')[$date[4]],
 $date[3],
 qw(Sun Mon Tue Wed Thu Fri Sat 日 月 火 水 木 金 土)[$date[6] + ($mode eq 'jp' ? 7 : 0)],
 $date[2],
 $date[1],
 $date[0]
);
return $mode eq 'jp'
  ? sprintf qq|%04d年%02d月%02d日(%s) %02d時%02d分%02d秒|, @date
  : sprintf qq|%04d/%02d/%02d(%s) %02d:%02d:%02d|, @date
;
}
みたいな♪
0674nobodyさん2006/05/20(土) 22:29:16ID:???
何でみんな、そんな親切に教えるかなぁ?
こんなの(いくら初心者っつったって)前後の流れを見れば分かることだし
分からないようならPerlに限らずどんな言語だって身に付かないと思うよ。
甘やかすのと手助けするのは全然違う。
0675nobodyさん2006/05/20(土) 22:34:23ID:???
それと>>673は
$wday = ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday') [$wday];
すら分からない初心者に、自分はこんなにすごいんだYOと自慢しているようにしか見えない。
0676nobodyさん2006/05/20(土) 22:44:06ID:???
で?
0677nobodyさん2006/05/20(土) 22:45:03ID:???
Perlerにはお人好しが多いってだけの話
0678nobodyさん2006/05/20(土) 22:53:39ID:???
>>676
相手のレヴェルも考えましょうってことサ

>>677
リアルで聞かれたら親切に教えるんで、俺もやっぱりお人好しかなw
0679nobodyさん2006/05/20(土) 23:10:55ID:???
この板の人は皆優しいです。
0680nobodyさん2006/05/20(土) 23:51:27ID:???
>>679
全員が優しいとは限らない
0681nobodyさん2006/05/21(日) 00:40:52ID:???
そりゃ回答してるのが全部俺だけだからなぁ
0682nobodyさん2006/05/21(日) 01:34:49ID:???
バロスwwwwwwwwww
0683nobodyさん2006/05/21(日) 03:26:23ID:MNSamSTB
質問です

現在チャットを作っているのですが
在室者・閲覧者の表示方法がわかりません
どういう感じにすれば表示できるかご教授してくださるとうれしいです
0684nobodyさん2006/05/21(日) 03:48:50ID:???
>>683
在室者は、ログインしてから退室するまでのメンバーを表示すればいいだけだし
閲覧者は、1分に1回くらい画面をリフレッシュして、その時にIPを拾えばいい

大雑把に言えばこんな感じだけど、どういうチャットを作りたいのかはあなたしか
知らないんだから、自分の理解出来る範囲で仕様を決めればいいんでないかい
0685nobodyさん2006/05/21(日) 03:56:10ID:???
言うまでもないけど、管理のロジックは自分で考えるんだよ。

例えば
・IP
・ユーザ名
・名前の色コード
・リロード時間(個人個人で設定が違ってくるから)
・現在の状況(在室中か閲覧中か)

等を構造体に持たせるとか。
06866832006/05/21(日) 04:13:12ID:MNSamSTB
>>684-685
深夜にも関わらずレスありがとうございます

つまりログインしたときその人の名前とIPを拾い別ファイルに記録
(ログアウト時には削除する)
閲覧はログイン手前画面のIPを監視して記録と…

とりあえずこういう感じに自分で書いてみようと思います^^
またわからなくなったときよろしくおねがいしますm(__)m
0687nobodyさん2006/05/21(日) 13:00:23ID:???
困った時は、ネ申KENT様のスクリプトを教本として作ればいいんですよ
ネ申KENT様のスクリプト以外は全て糞ですウンコです。
0688nobodyさん2006/05/21(日) 13:03:06ID:???
ですよね。

use strict;とかつかうやつは馬鹿しかいないし、
オブジェクト指向とか、設計時間の無駄ですよね。

目の前の納期に間に合えばいいもんね!
0689nobodyさん2006/05/21(日) 13:22:33ID:???
perl4の環境を考えるとネ申KENT様より多少救いのある物しか
書いて配布できない環境下の俺が来ましたよ?
古くからやっていると、そこら辺が難しい
perl4のものはバクと最適化とセキュリティ関係以外は打ち止めにして
頭の弱い利用者を配慮してperl5のは別鯖で配布していたりする
それ以前に「ネ申KENT様」と書けば反面教師としてですね
0690nobodyさん2006/05/21(日) 13:25:24ID:???
利用者と環境によってKENT式かそれ以外を使い分ければよくね?
0691nobodyさん2006/05/21(日) 18:44:21ID:0cIEHbzA
Perlの正規表現で、
$str='01234567890abcdef';
で、
〜/[0-9]*/と正規表現させた場合、
マッチした部分(この場合、マッチした'01234567890')を取り出す場合、どうすればよいのでしょうか?
0692nobodyさん2006/05/21(日) 18:51:18ID:???
ぐぐれかす
0693nobodyさん2006/05/21(日) 19:37:41ID:???
$str =~ s/[0-9]*//g;
0694nobodyさん2006/05/21(日) 19:38:38ID:???
>>692
回答もできないただのバカはどっかいけ
0695nobodyさんNGNG
さすがにここまで低レベルな質問に回答出来ない奴は居ないだろ
0696nobodyさん2006/05/21(日) 19:57:50ID:???
>>693
ありが�d

>>695
日本語を喋れ
それか韓国にでも帰れ
0697nobodyさん2006/05/21(日) 20:00:37ID:???
>>696
おまいのやりたいことは>>693で合ってるか?
ならそれでいいんだけどなw
0698nobodyさん2006/05/21(日) 20:00:53ID:???
>>696
え、>>693は思いっきり間違ってるけどこれでいいの?w
0699nobodyさん2006/05/21(日) 20:02:10ID:???
すいません教えてください
0700nobodyさん2006/05/21(日) 20:03:18ID:???
バロスwwwwwwwwwwwwww
0701nobodyさん2006/05/21(日) 20:03:39ID:???
ワロタ
0702nobodyさん2006/05/21(日) 20:05:35ID:???
697 名前:nobodyさん[sage] 投稿日:2006/05/21(日) 20:00:37 ID:???
>>696
おまいのやりたいことは>>693で合ってるか?
ならそれでいいんだけどなw

698 名前:nobodyさん[sage] 投稿日:2006/05/21(日) 20:00:53 ID:???
>>696
え、>>693は思いっきり間違ってるけどこれでいいの?w


700 名前:nobodyさん[sage] 投稿日:2006/05/21(日) 20:03:18 ID:???
バロスwwwwwwwwwwwwww

701 名前:nobodyさん[sage] 投稿日:2006/05/21(日) 20:03:39 ID:???
ワロタ




気持悪りぃ…
0703nobodyさん2006/05/21(日) 20:05:53ID:???
ほっとけ
0704nobodyさん2006/05/21(日) 20:06:20ID:???
>>696
perldoc perlrequick

を隅から隅まで 3回読んで理解してから、また同じ質問をしに来てみて。
まだその気が残ってればね。
0705nobodyさん2006/05/21(日) 20:07:32ID:???
「w」を使う奴ってホント痛いの多いな
0706nobodyさん2006/05/21(日) 20:09:14ID:???
>>704
そういう返しは嫌いだなボクチン

>>705
>>704にむかついたので教えてあげようと思ったがやめた。
perlの正規表現を扱っているページならほぼ確実に載ってると思うんで自分で調べろ
0707nobodyさん2006/05/21(日) 20:11:46ID:???
どーでもいーけど>>693GJ!
07086932006/05/21(日) 20:15:20ID:???
うわあ・・・釣れてる釣れてる。
まさかここまで釣れるとは思わんかったよ。

>>696
>>697
>>698
>>700
>>702

マジで馬鹿なんだなお前ら。
0709nobodyさん2006/05/21(日) 20:16:08ID:???
これは酷い
0710nobodyさん2006/05/21(日) 20:17:23ID:???
別に>>693が面白いわけじゃないのにw
0711nobodyさん2006/05/21(日) 20:25:27ID:???
>>708
おもしろくないよ
0712nobodyさん2006/05/21(日) 20:26:58ID:???
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwww


           w


臭ぇんだよカス
0713nobodyさん2006/05/21(日) 20:40:46ID:???
氏ね氏ね
0714nobodyさん2006/05/21(日) 20:49:19ID:???
厨国人どもうぜーぞアホ
0715nobodyさん2006/05/21(日) 20:51:27ID:???
あーもう黙れよ屑が。。。
0716nobodyさんNGNG
この流れワロタ
0717nobodyさん2006/05/22(月) 00:07:23ID:???
このクソな流れのどこが面白いんだか・・・
0718nobodyさん2006/05/22(月) 00:55:07ID:???
はお、次の質問どうぞ
0719nobodyさん2006/05/22(月) 01:03:12ID:???
>バロスwwwwwwwwwwwwww
>ワロタ

日本語以外を話されても困ります
この言葉を日本語に翻訳してくれるプログラムを教えて下さい
0720nobodyさん2006/05/22(月) 01:10:01ID:???
>>719
バーカ!
0721nobodyさん2006/05/22(月) 02:26:31ID:8/L06kwr
なんだかこんな雰囲気で質問するのも悪いんですが質問です

CGIスクリプトのHTML部分でUTF-8のコードを使いたいのですが
スクリプト本体をUTF-8で書いても500Errorがでてしまいます
どうしたらいいんでしょうか?

< META http-equiv="Content-Type" content="text/html; charset=UTF-8" >
このタグだけUTF-8にしてみたりしたんですが、元のコードが違うため化けてしまってだめです

どうか教えてください
0722nobodyさん2006/05/22(月) 02:32:44ID:???
>>721
UTF8以外で書けばエラー出ないの?
エラーは何が出てるの?(500じゃわからんよ)
0723nobodyさん2006/05/22(月) 02:55:13ID:???
>>721
状況がよくわからんけどとりあえず文字コードをUTF-8Nで保存してみ
07247212006/05/22(月) 03:05:46ID:???
レスありがとうございます

723さんのとおりUTF-8Nで保存したら表示されました!
ありがとうございます^−^
0725nobodyさん2006/05/22(月) 03:40:59ID:???
Windowsのメモ帳とか問答無用でBOM付けるのでちょっとした修正にも使わない方がいい。
0726nobodyさんNGNG
>>719
マジレスすると「わろた」はうちの方言
0727nobodyさんNGNG
と言うか関西弁か
0728nobodyさん2006/05/22(月) 11:40:06ID:p6aDul8l
データファイルから切ってきて
例えば設定ファイルに「$bgcolor=red」などと書いたものを
そのまま1行ずつ読み込んだとします
これをスクリプト内でそのまま使って
機能させることはできますか?
0729nobodyさん2006/05/22(月) 11:49:52ID:???
nihongo de ok
0730nobodyさん2006/05/22(月) 11:55:28ID:???
できる

- 終了 -
0731nobodyさん2006/05/22(月) 13:04:02ID:???
>>730
できねーよ!w
0732nobodyさん2006/05/22(月) 13:10:16ID:???
工夫次第でできる。

- 終了 -
0733nobodyさん2006/05/22(月) 13:11:35ID:???
>>732
オマエはバカか?よく見ろ。
0734nobodyさん2006/05/22(月) 13:15:37ID:???
eval
0735nobodyさん2006/05/22(月) 13:17:23ID:???
733 名前:nobodyさん[sage] 投稿日:2006/05/22(月) 13:11:35 ID:???
>>732
オマエはバカか?よく見ろ。


あ?おい
0736nobodyさん2006/05/22(月) 13:20:41ID:???
> あ?おい

あ行の勉強中ですか?
お疲れさまです。
0737nobodyさん2006/05/22(月) 13:22:11ID:???
ふたりともかおがまっかですよ
0738nobodyさん2006/05/22(月) 17:21:46ID:???
eval while(<DATA>);
print $bgcolor,"\n", $color, "\n";
exit;

__END__
$bgcolor=red
$color=blue

>>728 こういうこと?
0739nobodyさん2006/05/22(月) 18:31:34ID:???
デバッグ用に配列の中身がみたいと思っています。
PHPでの print_rのようなものはありませんか?

googleで検索したところ Dumperというのを見つけたのですが、
配列を入れても配列の構造を返さないようです。
ちなみに以下のようにしました。

$dumper = new Data::Dumper(\@array);
print $dumper->Dump();



0740nobodyさんNGNG
print Dumper(\@array);
じゃだめなん
0741nobodyさん2006/05/22(月) 19:19:11ID:???
>>740
だめなんですよねぇ。

ちょっと調べているんですが、以下のようなコードで配列に連想配列を
突っ込むというようになっているからかもしれません。

@array = ('a','b','c');

foreach(@hoge) {
$array{$_}{$fuga} = 'hogehoge';
}

print Dumper(\@array);
-> a,b,cがでてくる

print Dumper(\$array);
-> undefがでてくる
0742nobodyさんNGNG
\%array じゃないのか…
0743nobodyさん2006/05/22(月) 19:39:48ID:ZM446lpM
どなたかお願いします。

perlの変数値を複数行にする事は可能でしょうか?
例えば、htmlソースを変数に入れる際改行を消して一行にするしかないのでしょうか?

例)以下のソースを$wordという変数に代入するには・・・
<table>
</tr>
<td>
hello
</td>
</tr>
</table>

↓
$word = "<table><tr><td>hello</td></tr></table>";
とするしかないのでしょうか?
0744nobodyさんNGNG
ヒアドキュメントとか

$word = << '_END_';
<table>
</tr>
<td>
hello
</td>
</tr>
</table>
_END_
0745VIPPER2006/05/22(月) 19:46:53ID:???
>>743
ぐぐれかす
0746nobodyさん2006/05/22(月) 19:47:44ID:???
>>743
改行文字入れるだけ。訊く前に自分で試してみては。
"<table>¥n<tr>¥n<td>¥nhello¥n</td>¥n</tr>¥n</table>¥n"
0747nobodyさん2006/05/22(月) 19:47:58ID:???
>>745
氏ねクズ
0748nobodyさん2006/05/22(月) 19:58:54ID:???
>>742
> \%array じゃないのか…

その通りでした...
ぐぐって出てきたページには \$hash って書いてあったと思ったのに orz

ありがとさんくす
0749nobodyさん2006/05/22(月) 20:52:52ID:???
アンカーの記号に全角使うヤツってプログラムを手に付ける人だとは思えない
0750VIPPER2006/05/22(月) 20:57:38ID:???
749 名前:nobodyさん[sage] 投稿日:2006/05/22(月) 20:52:52 ID:???
アンカーの記号に全角使うヤツってプログラムを手に付ける人だとは思えない


バロスwwwwwwwwwwwww
突撃させて荒らしてやろっかこのスレww
0751nobodyさん2006/05/22(月) 21:01:38ID:???
基地外が来る分には構わんが


むしろ低脳集団か^〜^
0752VIPPER2006/05/22(月) 21:07:36ID:???
決めたわwwwwうぜぇからwwwこのスレ荒らさせるwwwwwww
VIPPER舐めんなw
0753nobodyさん2006/05/22(月) 21:10:04ID:HprcJTxW
クソスレ終了
0754nobodyさん2006/05/22(月) 21:11:26ID:/ImCeCNj
糞スレ終了
でいいのかな?
0755nobodyさん2006/05/22(月) 21:14:09ID:???
>752
クソ人生終了
でいいのかな?
0756nobodyさんNGNG
VIPよりニュー速に宣伝書き込みまくった方が人来るよ
0757nobodyさん2006/05/22(月) 21:20:14ID:BVU2xPKh
糞スレ終了
0758nobodyさん2006/05/22(月) 21:21:16ID:???
クソスレ終了
0759nobodyさん2006/05/22(月) 21:22:06ID:Lsku8mlu
       , -‐''''"´ ̄``ヽ、        //´   ______,,>、
      /     _     ヽ      /::/ / ̄:::::::::::::::::::::::\
     /        ̄ ̄   j     /::::l/:::::::::::::::::::::::::::::::::::::::::l
      l _ィニニア二二二ニヽ、j._    ,l:::::::::::/l/lノノ/_イ:::::::::::::l
     | 0Lj/ヽ      /・l,`ヽ   l::::/ /ヽ      /・l, l::::::| 
     レ:r、/i・ ノ       く、ノ|     |::l i・ ノ       く、ノ !:;:::/
     {,      ニ  ,    .|ヽ     {,      ニ  ,    .|:::/ 
     レ}   人   ノヽ   |      }   人   ノヽ   |ノ/  
     l:T`'''i,  `ー"  \__,/ノ      T`'''i,  `ー"  \__,/  
     ヽ},  `ー--ー'''" /'         レ},  `ー--ー'''" //  
        x,    _,,.x="         `x,    _,,.x="
     _,r┴‐-`v´-‐j-、__   , -‐-、_r┴─'ー‐チト    
  / ̄/:.:.:.:| ̄ ̄`T ̄´|:.:.:.:l´ `ヽ /    ヽ ̄`ー-‐'´`''''⌒ヽ         「バルス!」
/   ,':.:.:.:.:.l    l   l:.:.:.l    \  _r‐、-、-、r,    、   ',
     |:.:.:.:.:.:.!     !   !:.:.l   ,. -‐ゝ/// 〉 〉 〉 〉 〉    !   ',
    l:.:.:.:.:.:.l     |   l:.:.:l  /  人〈〈〈〈 ' ' ' /っ   l    l
    l:.:.:.:.:.:.!     !   l:.:.:.ト/   /  ```´-ァ‐'''"     /   l
、__/:.:.:.:.:.:l     |    |:.:.:ヽヘ  l    //         / _ ィノ
    /:.:.:.:.:.:.:!    l   |:.:.:.:.:l `ーヽ、_ノ´l、______/lニ二」
____l:.:.:.:.:.:.:.|      l   |:.:.:.:.:!        |_  ( ( ) )_〕|   l
   l`ー‐‐'匸二l ̄ ̄l二フーイ       /   ̄ `‐‐'´ ヽ  |
0760nobodyさん2006/05/22(月) 21:22:37ID:???
vip でやれ
0761nobodyさん2006/05/22(月) 21:24:22ID:???
クソスレ終了
0762nobodyさん2006/05/22(月) 21:28:43ID:acwyxWDg
vip
0763nobodyさん2006/05/22(月) 21:31:00ID:xLp91Sew
クソスレ終了
0764ヴぃぱー2006/05/22(月) 21:33:18ID:???
>>752を引き取りにきますた

ご迷惑おかけしました
0765nobodyさん2006/05/22(月) 21:36:32ID:aQon5hVc
しまったローゼンかと思ったらコーディングだった!!!!!!!!!!!!!!!
■ このスレッドは過去ログ倉庫に格納されています