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

Perl コーディング初心者質問コーナー Part26

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

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

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

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

関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
0305nobodyさん03/07/30 11:53ID:???
Perlはその辺を逐一理解してなくても扱える言語だからな。
それはPerlの優秀な点である。
その分ユーザーのレベルが下がるのは仕方がない。
0306nobodyさん03/07/30 12:32ID:???
下手にソフトリファレンスなんてもんがあるせいで、配列やハッシュの有効な使い方を
理解しないまま進んでしまうんじゃないかな。
030729603/07/30 13:22ID:VqnJP0e8
質問にお答えくださってありがとうございます。

print ${'a'.$b};
だとスカラ変数だとうまくいったのですが
配列の変数だとうまくいかないようです。

$sen1[] $sen2[] $sen3[]という変数があって
$randaに1〜3という値が入ていて
print("{${sen$randa}[$i]}");
のように書いたのですが、どうもうまくいかないみたいです。
0308nobodyさん03/07/30 13:43ID:???
>"{${sen$randa}[$i]}"
ヽ(*`Д´)ノ むちゃくちゃやんけー!
0309nobodyさん03/07/30 14:05ID:???
>>304
モジュールまたがってソフトリファレンス使ってるソースを見たことがある。
最初どこから変数が湧いてくるのか理解できなくて気絶するかと思った。
……って、これはマ板ネタか。

>>307
勉強しなおした方が良いと思われる。
031029603/07/30 14:09ID:QHsgEgDp
>>308-309
Perlは今回初めての仕様で、まだ慣れてないんで
お許しください。
外の括弧で囲めば、配列の[]が文字列として認識されずに済むと
聞いてやってみたのですが
もしかして、これはPHPの文法でしょうか?
031129603/07/30 14:10ID:QHsgEgDp
仕様→使用でした
0312あぼーんNGNG
あぼーん
0313nobodyさん03/07/30 15:13ID:???
ほれ、
print ${'sen'.$b}[$i];

あと >>299 >>304 >>306 >>309 を10回ずつ声を出して読んで!!
お帰りはこちら ↓
http://www.google.co.jp/
0314nobodyさん03/07/30 15:17ID:???
>>307
> $sen1[] $sen2[] $sen3[]という変数があって

ってのは@sen1, @sen2, @sen3ってことか?
perlの配列がわかってれば、こんな書き方にはならないと思うのだが。

${'a'.$b}という回答を貰っておいて${sen$randa}[$i]はないだろ……。

print ${'sen' . $randa}[$i];
0315nobodyさん03/07/30 16:38ID:Nvxneeyi
初心者質問失礼致します。

if(!open(FH, ">>file")){ print 'file open error'; }
else{
  flock(FH, 2);
  print FH 'abcde';
  close(FH);
}

このように追記モードの場合、flockは必要になるの
でしょうか。
0316nobodyさん03/07/30 16:50ID:???
うん
0317あぼーんNGNG
あぼーん
0318nobodyさん03/07/30 17:09ID:???
>>315
モードに関係なく必要なときは必要だと思うが。
0319nobodyさん03/07/31 03:15ID:???
>>318
お返事有難うございます。
ロック使うことにしました。
有難うございました。
0320nobodyさん03/07/31 05:53ID:INH5PtXx
readline,<FH>を使ってデータを取り込みたいのですが、
上(最初)から順ではなく、下(最後)から読ませることは出来ませんか?
0321nobodyさん03/07/31 06:32ID:???
>>320
無理ぽ
あとはPerlメモ嫁
0322nobodyさん03/07/31 07:08ID:???
了解 seekで頑張ります
有難うございました。
0323nobodyさん03/07/31 10:39ID:???
unshiftしたらえんちゃうんかと
0324nobodyさん03/07/31 10:44ID:???
>>323βακα..._〆(゚▽゚*)
0325あぼーんNGNG
あぼーん
0326あぼーんNGNG
あぼーん
0327あぼーんNGNG
あぼーん
0328あぼーんNGNG
あぼーん
0329nobodyさん03/07/31 12:08ID:???
use Time::Local;

$t = time;
print "UTC =", timegm( gmtime( $t ) ), "\n";
print "UTC =", timelocal( localtime( $t ) ), "\n";

gmtime とか localtime で返してくる値を time で
返す値の形式に戻すコードってこんなんでいい?

テストしたら一応2つとも同じ値返す様になったけど…。
0330nobodyさん03/07/31 12:56ID:???
希望通り動いてんのならここで聞かなくてもいいでしょ。
誰かのお墨付きが欲しいの?
0331nobodyさん03/07/31 13:18ID:???
いや、ちょっと自信が無かっただけ…。
UTC の解釈もチョット間違ってたし<自分
0332nobodyさん03/07/31 13:32ID:???
戻すと言ってもそれじゃ無意味だしな
0333あぼーんNGNG
あぼーん
0334nobodyさん03/07/31 13:55ID:???
$t = 10.2 - 10.0
のような小数計算で$tに正しく答が代入されないのはなぜですか?
0335nobodyさん03/07/31 14:11ID:???
↑確認の方法どうやってるの?それが、間違ってるような気がするが
0336nobodyさん03/07/31 14:19ID:???
>>334
不動小数点数の精度の問題ですね。
一般に小数の最後の桁は信用できません。
033733603/07/31 14:22ID:???
浮動小数点です。
033833403/07/31 14:29ID:???
>335
代入して、htmlに書き出すだけです。

>336
そうなのですか…
遠回りですが整数でやることにします。ありがとうございました。
0339nobodyさん03/07/31 14:55ID:???
cgi内部で外部cgiファイルを起動する方法を教えてください。

HTMLだと、<img>タグを使ってたのですが、
<img src="./hoge.cgi">

CGIファイルだと、これがうまく起動されないわけです。
print "<img src=\"./hoge.cgi\">";

どうしたら良いでしょうか?ご教授お願いします。
0340nobodyさん03/07/31 15:58ID:???
>>339 さま、>>1 をお読みください
0341nobodyさん03/07/31 16:11ID:???
>>340
当たり前ですがエラーはでません。
起動したいファイルから吐き出しファイルが更新ができないだけなので、
どう質問したらいいでしょうか?よろしくお願いします。

って340じゃ無理か。(w
0342nobodyさん03/07/31 16:20ID:???
>>339
CGIから別のCGIを呼び出して、その出力を利用したいという事か?
お前の質問からそれを読み取るのは著しく困難だし、態度悪いから教えない。
0343nobodyさん03/07/31 16:54ID:???
>>339
バカだね〜
0344nobodyさん03/07/31 17:07ID:???
おちえない
0345nobodyさん03/07/31 17:22ID:???
>>341 さま、>>1を1200回ほどお読みください
0346nobodyさん03/07/31 20:52ID:???
>>339
いやもう見てて哀れだよ。
自分がたたかれてる理由がわからない奴ってのは。
しかしここで教えるとためにならんしなあ。
辛いところだ。
0347nobodyさん03/07/31 21:26ID:???
だいたいそのCGI、直接叩いてちゃんと出力するんかい。
んでエラー吐かんのは当たり前なんかい。
ちゃんと動かんかったらエラー吐くようにしとらんだけやんか。
それがあんたにとって当たり前なら、あんたの書いたコードは書いた通り
正常にうごいとるわけで、プログラムはなんも悪くないとオモーヨ。
はぁ
0348nobodyさん03/07/31 21:31ID:???
おもろい
0349nobodyさん03/07/31 21:44ID:???
自演ウザ。(*^。^*)
0350nobodyさん03/07/31 22:18ID:???
ちょっとした煽りにいちいちキレてるような奴は、真面目に回答してくれた人に対しても
そういう態度を取る可能性があるからね。
思い通りに動作しなかったり、質疑応答が長引いて耐え切れなくなったときに。

お互いがイヤな気持ちにならないためにも、そしてスレのためにもそういうアフォな質問者は
さっくりと無視しましょう。
0351nobodyさん03/07/31 22:31ID:???
if ($a>1)
  if ($a<10)

これを

if ($a>1 && $a<10)

と書くような技法を何ていうんでしたっけ?知ってる人教えてください。
0352あぼーんNGNG
あぼーん
0353あぼーんNGNG
あぼーん
0354nobodyさん03/07/31 22:47ID:???
自演うぜー。まじで。
いやなら無視すりゃいいのに。
0355nobodyさん03/07/31 22:57ID:???
結合演算子を使う技法w
0356nobodyさん03/07/31 23:20ID:???
ていうか名前なんてあるのか
0357nobodyさん03/07/31 23:26ID:???
2行を1行にする技法
0358nobodyさん03/07/31 23:46ID:???
>>354
自演?
心配すな。
おまいも端役のひとりじゃ
0359nobodyさん03/08/01 00:33ID:???
>>354
>>339必死だな。
0360nobodyさん03/08/01 04:02ID:???
>>351
トリビア技法
0361nobodyさん03/08/01 04:05ID:???
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

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

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
0362nobodyさん03/08/01 04:09ID:???
ここって初心者スレのワリにレベル高いんですけど。
0363nobodyさん03/08/01 04:55ID:???
本漁ったりググって分かる疑問は質問するまでもないからでしょ
0364nobodyさん03/08/01 05:59ID:???
人に聞いているうちは初心者。
たいていのことを自分で解決できるようになれば、まずは初心者脱出ってこと。
0365nobodyさん03/08/01 08:23ID:???
364に勝手に追加

自分で調べる前に聞いているうちは一生初心者にすらなれない。
0366nobodyさん03/08/01 10:15ID:???
馬鹿高い本を買って自己解決する
安めの本を買って、足りない部分は周りを利用する

どっちが初心者だろうね
0367nobodyさん03/08/01 10:24ID:???
付属ドキュメントで自己解決する
0368nobodyさん03/08/01 11:27ID:???
初心者は「初心者の質問板」or「PC初心者板」へGo!!
0369nobodyさん03/08/01 12:33ID:???
安い本で慣れて高い本で補う。
0370nobodyさん03/08/01 14:09ID:???
先人たちの築いた知識を上手に利用して上達への近道を選ぶのは初心者でつか?
0371 ◆hMJAPH9PWA 03/08/01 14:27ID:???
> 安めの本を買って、足りない部分は周りを利用する

「周り」が正規のマニュアルを指しているなら賛成だけど、
そうじゃないなら、たとえ馬鹿高くてもちゃんとした本を買うべきだと思う。
0372nobodyさん03/08/01 14:36ID:???
こんなところで質問するようなやつは上達しないってことだ
0373nobodyさん03/08/01 16:33ID:???
このスレ腐ったな
0374nobodyさん03/08/01 16:47ID:???
夏は腐りやすいのでご用心
0375nobodyさん03/08/01 16:48ID:???
>>364
>>365
だったら初心者は自分で調べるのにわからない香具師ですね
0376nobodyさん03/08/01 17:30ID:???
>先人たちの築いた知識を上手に利用して上達への近道を選ぶのは初心者でつか?
ヒントを乞う位なら構わんけどさ、自助努力の前にしつこく説明してクレクレ言う椰子は嫌だな。
一々誰かの時間を奪ってまで問答を求めるのは「上手な利用」とは言わない。
先人の知識ってのは先に書籍とかを当たった方がはやい。
それでも詰まったときに質問するのはアリ。
試行錯誤をめんどくさがり過ぎてるのがミエミエな奴はムカツク。
0377nobodyさん03/08/01 17:55ID:???
>>370
>上手に利用
もちろんまず初めにGoogleだよな???
0378nobodyさん03/08/01 18:06ID:???
もちろんはじめに燃料投下
0379nobodyさん03/08/01 18:46ID:???
テンプレに(・∀・)イイ!!質問者の例とイク(・A・)ナイ質問者の例を載せれよ
0380nobodyさん03/08/01 19:50ID:???
>>379

>>1 に書いてあるじゃん

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

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

最低でも1と3が無いと誰も答えられないよ。

これに反するような質問が悪い例
0381nobodyさん03/08/01 20:31ID:???
「例」という日本語が理解できてない香具師はけん
0382nobodyさん03/08/01 20:36ID:???
1. >>1嫁。
2. 過去ログ嫁。
3. ググるれ。
0383nobodyさん03/08/01 21:25ID:???
>>379
そんな事言う様なら質問以前の問題だと思う
0384nobodyさん03/08/01 21:44ID:???
このスレ、ちょっとPerl覚えた厨に汚染されて臭いね。
質問を乞うぐらいにならんと上達せんよ。
まあ、中途半端な奴に言ってもわからかな。はは。
0385nobodyさん03/08/01 21:47ID:???
Perl覚えたばかりでもいいからさ。
常識や礼儀を覚えてない奴は勘弁してくれ。
0386nobodyさん03/08/01 22:18ID:???
( ´∀`)ここ2ちゃん
0387nobodyさん03/08/01 22:21ID:???
>質問を乞うぐらいにならんと上達せんよ。
マトモな質問者なら大歓迎なのれす。
0388nobodyさん03/08/01 22:50ID:???
>386みたいに思ってる奴は当然、2ちゃんだから嘘を教えられても文句言わないよな?
0389nobodyさん03/08/01 22:58ID:???
そんなアフォはほっとけや。イチイチ相手にしてるだけ無駄
0390nobodyさん03/08/01 22:58ID:???
正直、昔のほうが質問者叩きはひどかったわけだが。
普通に質問しても「氏ね」とか言われたもんだ。
ここまで丸くなった2ちゃんでまだ叩かれてるような奴って……
0391nobodyさん03/08/01 23:12ID:???
>>390
うれしげに・・・とかするなドアフォ
言いたいことあるなら最後まで言ってくれ
0392nobodyさん03/08/01 23:17ID:???
アフォだらけ
0393nobodyさん03/08/01 23:28ID:???
>良い回答は良い質問から。
これが見事に実践されてるわけだな。
アフォな質問にはアフォな回答が。
0394nobodyさん03/08/01 23:48ID:???
初心者だらけだから仕方ないよ
質問するときは内容をよく吟味してから投稿してください。
0395nobodyさん03/08/02 00:46ID:???
以上、>>339=341の自作自演でした。
0396nobodyさん03/08/02 01:55ID:O5cg5dSH
perl5ですけど
srand(time|$$);
を付けないと、rand が時間で決まってしまいます。
そんなもんなんですか?
0397山崎 渉03/08/02 02:20ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0398nobodyさん03/08/02 03:19ID:???
>>396
>>1
0399nobodyさん03/08/02 04:25ID:???
>>396
試してないけど

srand($$|time);

これじゃ、駄目か?w
0400ぼるじょあ ◆ySd1dMH5Gk 03/08/02 04:48ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
040139803/08/02 04:51ID:???
(´・ω・`)<俺、日本語が不自由なんだよ。
0402nobodyさん03/08/02 08:53ID:???
あげ
0403nobodyさん03/08/02 10:06ID:???
>>401
ならば、お前が得意な言語でもいいぞ。
0404nobodyさん03/08/02 10:25ID:???
トッカロピ
■ このスレッドは過去ログ倉庫に格納されています