[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/25 20:07 / Filesize : 271 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:nobodyさん mailto:sage [2007/09/16(日) 19:49:43 ID:???]
Perlのコーディングで困ってる人のスレです。

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

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

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

お勧めサイトは >2 以降

前スレ ttp://pc11.2ch.net/test/read.cgi/php/1180492441/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/

95 名前:nobodyさん mailto:sage [2007/09/25(火) 22:46:42 ID:???]
>>94
同じファイル?ならコンソール開きっぱなしで1回目だけ「perl スクリプト名」で実行しておけば連続テストは↑+Enterで済む。
慣れにもよるけど多分ダブルクリックより速く操作できる

エラーはSTDERRに出力される。
誤解しているようだけどSTDINは標準入力であって出力ではない。標準出力はSTDOUT

96 名前:91 [2007/09/26(水) 00:17:27 ID:zmZEFb0X]
>>95
2回目以降は確かに楽なんですけど。
STDERRに出力されてるので、END{<STDIN>}で出る入力受付画面には出力されない?
STDOUTへの分はきちんと表示されますし。

STDERRの取得方法があるのでしょうか?

97 名前:nobodyさん mailto:sage [2007/09/26(水) 00:27:31 ID:???]
>>89
これ、ActivePerl 5.8.8.822で普通にtest foo barと表示された
ダメ出しも無し

98 名前:nobodyさん mailto:sage [2007/09/26(水) 00:37:06 ID:???]
>>96
ラクダ本より
>内部的に発生する例外によって終了する場合でも、ENDサブルーチンは呼び出される(ただし、シグナルによって撃沈された場合は除く)
とあるようにENDそのものが実行されない。自分で(できれば)トラップする必要がある。これはsigtrapを使えばよい。

…が、それくらいなら最初からコンソールから使うことを強く勧める。元々ダブルクリックで起動するようには設計されてないし。

99 名前:nobodyさん mailto:sage [2007/09/26(水) 00:41:02 ID:???]
>>91
echo off
perl %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
pause

みたいなバッチファイル作って、,plに関連付けして置くぐらいかなぁ。

統合型開発環境(みたいなエディタ)を使うと、その場で実行して、
その場で結果表示できたりするので、そういうの使うと便利だよ。

100 名前:nobodyさん mailto:sage [2007/09/26(水) 00:56:23 ID:???]
しまった。
> perl %0 %1 %2 %3 %4 %5 %6 %7 %8 %9

> perl %1 %2 %3 %4 %5 %6 %7 %8 %9
だた。

101 名前:101 mailto:sage [2007/09/26(水) 02:22:27 ID:???]
型グロブというものについて
教科書を今日読んで理解したので
型グロブについて誰か質問してください。
説明します。

102 名前:nobodyさん mailto:sage [2007/09/26(水) 05:15:12 ID:???]
型グロブをうまいこと使っているモジュールを列挙してください。

103 名前:nobodyさん mailto:sage [2007/09/26(水) 13:38:32 ID:???]
>>99-100 perl %*



104 名前:nobodyさん mailto:sage [2007/09/26(水) 17:01:12 ID:???]
>>101
ありがとうございます!
スカラー変数
配列変数
リスト
ハッシュ変数?
それらのリファレンスなど

上記との違いを説明してください。
そして何の為にグロブがあるのですか?
僕は素人なのでまだ使うべきところに出会っていません。
いや使えてたらもっと簡単につくれてたのかもしれません。

105 名前:nobodyさん mailto:sage [2007/09/26(水) 18:35:06 ID:???]
ビウログってなんですか?

106 名前:nobodyさん [2007/09/27(木) 02:15:46 ID:rW8f5K4d]
質問です。

if($Fm{'form'}){  処理  } #フォームに何か入力されていれば処理

上記の場合
フォームに0と入力した場合もスルーされてしまいます。
認識させるにはどのような書き方になるのでしょうか。

if分の前に
$Fm{''form'}=sprintf( "%c", $Fm{''form'} );
のように文字列にするという方法を思いついたのですが、ちょっとスマートじゃないなと思っています。
よろしくおねがいします。

107 名前:nobodyさん mailto:sage [2007/09/27(木) 02:23:35 ID:???]
if($Fm{'form'} ne ""){  処理  }

108 名前:nobodyさん mailto:sage [2007/09/27(木) 02:35:47 ID:???]
>>107
素早い回答ありがとうございます。
その手がありましたか。目からうろこでした。
ありがとうございます!

109 名前:nobodyさん mailto:sage [2007/09/27(木) 03:41:52 ID:???]
length とかも

110 名前:nobodyさん mailto:sage [2007/09/27(木) 06:29:35 ID:???]
1000:1234:abcd:2000::/120のような省略されたIPv6のアドレスを展開して
リストに格納したいのですが、プレフィックス長(=120)に応じて
展開する部分が一部不完全なので教えてください。
下のコードだと、下4桁の連番生成しかできない上に、プレフィックス長が4の倍数でない場合にうまくいきません。
これを4の倍数でなくても&下4桁以上もちゃんと展開できるようにしたいのですが…。
たとえば、1000:1234:abcd:2000::/127であれば、
1000:1234:abcd:2000:0000:0000:0000:0000
1000:1234:abcd:2000:0000:0000:0000:0001
の二つが出来てほしいのです。
できれば10進数で連番作ったものを16進数変換してる部分もなんとかしたいんですけど…。

sub _Gen{
  my ($addr, $pref) = split(m|/|, $_[0]);
  $addr = &_Format($addr); # ここで省略のない32桁の英数字を4桁ごとに:で区切ったものになる
  $addr =~ s/://g;
  if($pref % 4 != 0 || $pref < 112 || $pref > 128){
    return;
  }elsif($pref == 128){
    1 while $addr =~ s/(\w+)(\w\w\w\w)/$1:$2/;
    return $addr;
  }
  my $fixed = substr($addr, 0, $pref / 4);
  my $keta = (128 - $pref) / 4;
  my (@addrs, $tmp);
  for(my $i=0; $i<16**$keta; $i++){
    $tmp = sprintf("$fixed%0${keta}x", $i);
    1 while $tmp =~ s/(\w+)(\w\w\w\w)/$1:$2/;
    push(@addrs, $tmp);
  }
  return @addrs;
}

111 名前:nobodyさん mailto:sage [2007/09/27(木) 06:34:39 ID:???]
defined 常考

112 名前:101 mailto:sage [2007/09/27(木) 09:02:14 ID:???]
型グロブについて。

スカラー変数
アレイ
ハッシュ(連想配列)

この3つを同時に
扱うために、型グロブは
生まれてきたのです。

113 名前:101 mailto:sage [2007/09/27(木) 09:04:34 ID:???]
例えば

$a ←これはスカラー変数
@a ←これはアレイ(配列)
%a ← これはハッシュ(連想配列)

aの左側についてる記号は
$だったり
@だったり
%だったりとそれぞれ違うが
記号の右側はaで全部統一されている。

このとき

「aの型グロブ!」
と宣言すれば、

$a @a %a

この3つを全部同時に扱うことができる。
これが型グロブ。



114 名前:nobodyさん mailto:sage [2007/09/27(木) 09:14:21 ID:???]
こいつはOmotiとかタクトくせぇ

115 名前:101 mailto:sage [2007/09/27(木) 09:59:46 ID:???]
つまり
4年1組と
4年2組と
4年3組が
いたとして、

「4年生全員集合!」
と言うと、4年生が全員集まってくるのです
これが型グロブです。

116 名前:nobodyさん mailto:sage [2007/09/27(木) 11:04:43 ID:???]
全員集まってくることがどういうことか(メリットなど)
を語らないと通じないでしょ
肝心な部分が抜けてるポ^^

117 名前:nobodyさん mailto:sage [2007/09/27(木) 13:26:43 ID:???]
どっちも4年生なら配列かハッシュ使えば済むでしょ
どっちかというと「全学年の1組集合」の方が近いのではないかと。

118 名前:nobodyさん mailto:sage [2007/09/27(木) 13:32:25 ID:???]
その例なら多重配列使いたいからそれもちょっと…

119 名前:118 mailto:sage [2007/09/27(木) 13:33:29 ID:???]
ごめん勘違いしてた

120 名前:nobodyさん mailto:sage [2007/09/27(木) 13:34:07 ID:???]
この聞いてjも居ないのに延々と騙ろうとするのはタクトに違いない。

121 名前:nobodyさん mailto:sage [2007/09/27(木) 13:58:24 ID:???]
ねぇねぇ
なんでおじちゃんたち
DBが全部やってくれることを一生懸命書いてるの?

122 名前:nobodyさん mailto:sage [2007/09/27(木) 14:53:03 ID:???]
DB使ってないしぃ

123 名前:nobodyさん mailto:sage [2007/09/27(木) 15:13:12 ID:???]
DB使わない理由って やっぱサーバーにないから?
それとも手をつけたことがない?
後者なら絶対覚えたほうがいいよ。
生産効率が全然ちがうよ



124 名前:nobodyさん mailto:sage [2007/09/27(木) 16:59:17 ID:???]
>>110
これじゃだめなん?

use Net::CIDR;

print join("\n", Net::CIDR::cidr2octets("1000:1234:abcd:2000::/127"));

125 名前:nobodyさん mailto:sage [2007/09/27(木) 17:11:50 ID:???]
わざわざDB使うほどの事してないしぃ
ゴミ箱にごみを捨てるのは、わざわざ執事雇って呼んで捨てさせる程の事じゃないしぃ

126 名前:nobodyさん mailto:sage [2007/09/27(木) 19:38:27 ID:???]
>>124
うああああ、助かった
こんな便利なものがあるなんて!
ありがとう〜!

127 名前:nobodyさん [2007/09/27(木) 20:05:25 ID:fs1IYXrA]
色々なPerlがあるようですが、
rand ≠ rand(1)
となるものはあるのでしょうか?ちなみに自分のactiveperl fow win32 5.8は
rand == rand(1)
になっていると思います。
サバによって違うなら面倒でもrand(1)としといたほうが無難なのでしょうか?

それと演算子の優先順位をわかりやすい表にしてるところ知っていたら教えてくださいませm(__)m

last if 1-rand(1) <= 0.3;
こういうの書く時
last if ( (1-rand(1)) <= 0.3);
とすれば確実ですが、地味に面倒で意外と見づらいです。

128 名前:nobodyさん mailto:sage [2007/09/27(木) 20:36:42 ID:???]
同じだよ
その手の仕様をプラットフォームによって違うようにする必要性がないし

129 名前: ◆TWARamEjuA mailto:sage [2007/09/27(木) 20:40:25 ID:??? BE:2178645-2BP(6825)]
perldoc.perl.org/perlop.html#Operator-Precedence-and-Associativity
とか。。。

130 名前:127 [2007/09/27(木) 20:54:10 ID:fs1IYXrA]
>>128
そうですよね。まあでも括弧を外すなら結局rand(1)としないとしつこく引数にとられてしまいますね。
>>129
英語のページですか・・・
僕の学力の低さを見透かしたような皮肉orz

バカにでもわかる一覧表的なページはないということでFA?

131 名前:nobodyさん mailto:sage [2007/09/27(木) 21:18:44 ID:???]
unless (0 and 1){
print 1;
}

1と表示されます。unlessは条件式が偽を出してくる時にブロックを実行するのですよね?
0 and 1なら片方が真を出すのでブロック実行されないと思ったのですが。
複数の条件式が全て偽を出した時にだけブロック実行をさせたいのです。

回答宜しくお願いいたします。

132 名前:131 mailto:sage [2007/09/27(木) 21:22:38 ID:???]
ちなみにこれをifでやるとさらにおかしなことになります。

if (1 and 0){
print 1;
}

これです。何も表示されません。先ほどのunlessとの整合性がつきません。
ifによる条件式部分ではちゃんと二つ共が真の時だけ実行されるのに、
unlessの場合は片方が偽を出せば実行されます。

もしかして
真 and 偽
は最終的に偽扱いされるのですか?

133 名前:nobodyさん mailto:sage [2007/09/27(木) 21:28:31 ID:???]
>>132
>もしかして
>真 and 偽
>は最終的に偽扱いされるのですか?
そう。当たり前。



134 名前:nobodyさん mailto:sage [2007/09/27(木) 21:28:52 ID:???]
(0 and 1) は(「偽」かつ「真」)だからそんなの成り立たない
(「真」かつ「真」)なら結果「真」と評価できる
つまり、(0 and 1)は常に「偽」と評価される
だから unless (偽) は常にそのブロック内が実行される

135 名前:131 mailto:sage [2007/09/27(木) 21:46:53 ID:???]
なるほどです。
やはりちょっと違いますねunlessは。
ifのfalse版みたいに思うと微妙にやられますね。

全然関係ない話ですが、Perlには資格ってあるのですか?
書道3段とか簿記3級みたいに客観的にPerlにおけるプログラミング力を第3者に示すもの。
頑張って勉強してそのうちバイトでプログラムの仕事取ってみたいですが、
その時にそういう資格的なものがあるなら売り込みやすいなと思いまして。

本当に関係ない話ですいません。

136 名前:nobodyさん mailto:sage [2007/09/27(木) 21:59:00 ID:???]
>>130
perldoc.jp/docs/perl/5.8.8/perlop.pod

137 名前:127 [2007/09/27(木) 22:08:14 ID:fs1IYXrA]
>>136
日本語のページありがとうございます。
見てきますm(__)m

138 名前:nobodyさん mailto:sage [2007/09/27(木) 22:39:59 ID:???]
perlの仕事なんか無いよ

139 名前:nobodyさん mailto:sage [2007/09/27(木) 22:51:34 ID:???]
>>135
記号論理をやれば当然のことで、それを理解していればifの否定版と考えて問題は起きない

140 名前:nobodyさん mailto:非公開 [2007/09/28(金) 00:24:10 ID:???]
スカラー変数と配列変数をいっぺんに作りたいです。
my ($s1,$s2............$s20);
my (@r1,@r2............$r20);

全部書くのが面倒な時は簡単な方法はありますか?

141 名前:nobodyさん mailto:sage [2007/09/28(金) 00:37:13 ID:???]
コードの先頭でまとめて宣言するってこと?
そんなことすんならuse strict使わない、宣言しないほうがよっぽどいい

142 名前:140 mailto:非公開 [2007/09/28(金) 00:42:26 ID:???]
>>141
# 初期化

というところでいっぺんに使う変数を宣言しています。
何故というより癖みたいなものですかね。
それで分析プログラムを作ってたら、やたらと記録や集計用の変数が必要になったんです。
一つ一つまともに名前を考えるのが非効率なのでそこだけ適当な名前にしています。

strcit使いながら賢く宣言できませんか?
無理ならあきらめます。

143 名前:nobodyさん mailto:sage [2007/09/28(金) 01:00:34 ID:???]
変数をたくさん使いたいなら代わりにハッシュ使えば一つで済むじゃん



144 名前:nobodyさん mailto:sage [2007/09/28(金) 01:01:15 ID:???]
なんだか意味が良くわからないけどハッシュにいれればいいじゃない
キー名を考えるのは同じだけど

145 名前:nobodyさん mailto:sage [2007/09/28(金) 03:02:00 ID:???]
>>140
なんか、その変数名だと単に配列と二次元配列の初期化だけですむ気がすんだけど?
my ( @s, @r ) ;
# @s は、オマエさんの ( $s1, $s2, ..... ) を入れる配列
# @r は、オマエさんの ( [@r1], [@r2], .... ) を入れる配列

本当に別々の変数名が必要なのか?
本当に必要ならば上の人たちが言ってる通りハッシュorハッシュリファレンス
使え。

146 名前:nobodyさん mailto:sage [2007/09/28(金) 03:04:18 ID:???]
for (1..20) { eval "my(\$s$_ , \@r$_)" }

147 名前:140 mailto:非公開 [2007/09/28(金) 06:42:10 ID:???]
>>143-145
ごもっともなんですけど、リファレンスにするとコードが汚くなるんですよね。
いちいちデリファレンスしながらのコードは読みにくいし。
ハッシュも同じです。単なるスカラーと配列変数以上に読みやすいものはないかと。

>>146
それってforブロックの中でローカル化されてませんか?
evalするとローカル化されないとか?

148 名前:nobodyさん mailto:sage [2007/09/28(金) 06:53:34 ID:???]
>>147
そのevalに突っ込み入れられる実力があれば、
キミの望んだことは実現出来るよな?

まあ、自分の考えに固執しないで、他の人が普通に「hash使え」って
言ってる意味を考えた方が良いと思うけど。
=> perlでは143-145が普通の感覚だし、たかだか変数の
 宣誓にevalなんぞ使ってたら「変態さんがいるわ&hearts」
 と言われること受けあいだ。
そもそもそんなに個別の変数が必要か否かを考え直したほうがいい
んじゃね?

149 名前:nobodyさん mailto:sage [2007/09/28(金) 08:03:45 ID:???]
> 書道3段とか簿記3級みたいに客観的にPerlにおけるプログラミング力を第3者に示すもの。

書道の段位なんて流派ごとに異なるので、客観性があることにできないんと思うよ。
日商簿記2級くらいまでなら試験対策する時間さえあれば能力関係なしにとれるから
持ってたからといってだから何?レベルだよね。


150 名前:nobodyさん mailto:sage [2007/09/28(金) 08:31:35 ID:???]
ttp://d.hatena.ne.jp/naoya/20050809/1123563794
脳内では、コレが参考になるかもしらんが、
○自己判断のレベルが客観的判断のレベルと一致しない。
○レベル7と8との間にとても深くて暗い河がある。

プログラミングの技量の判断として有名なのはFizzBuzz問題
だが、有名になりすぎて知ってて当たり前。


151 名前:nobodyさん mailto:sage [2007/09/28(金) 12:19:13 ID:???]
Lv8かなぁ?Lv9にはなってない気がする。

152 名前:nobodyさん mailto:sage [2007/09/28(金) 14:28:43 ID:???]
>>150
ほんと、7と8の間の河が深すぎる。7.5がほしい。
俺はたぶん6か7だけど。

153 名前:nobodyさん mailto:sage [2007/09/28(金) 15:13:33 ID:???]
use strictってどういう効果有るの?ググってもよく分からないや

とか思ってる他人のソース弄って何とかしている人がここに一人。



154 名前:nobodyさん mailto:sage [2007/09/28(金) 15:43:49 ID:???]
strictやwarningsは融通が利かなくなるので嫌いでちゅわ

155 名前:nobodyさん mailto:sage [2007/09/28(金) 15:58:21 ID:???]
いいね、初心者スレらしい。

156 名前:nobodyさん mailto:sage [2007/09/28(金) 16:22:17 ID:???]
strictや-wを使って粋がってる自称玄人は笑えるww

157 名前:nobodyさん mailto:sage [2007/09/28(金) 16:32:49 ID:???]
無理にstrictやwarings使って本末転倒になってる馬鹿はよく見る

158 名前:nobodyさん mailto:sage [2007/09/28(金) 17:27:09 ID:???]
普段から常に使ってるがどういう場面で本末転倒になるんだろう

159 名前:nobodyさん mailto:sage [2007/09/28(金) 17:36:03 ID:???]
その昔はグローバル変数をサブルーチンでいじり倒すようなコードがあったけど
スコープ区切って引数と戻り値のやりとりするほうが100万倍読みやすいよ

160 名前:140 mailto:非公開 [2007/09/28(金) 18:12:42 ID:???]
>>148
>そのevalに突っ込み入れられる実力があれば、
>キミの望んだことは実現出来るよな?

すいません。もう少し普通の会話がしたいです。

>そもそもそんなに個別の変数が必要か否かを考え直したほうがいい
んじゃね?

このよくある「答は一つ、綺麗でスマート」っていうのはどうにも好かない。

161 名前:nobodyさん mailto:sage [2007/09/28(金) 20:40:06 ID:???]
>>160
じゃおまえの好きなようにすれば?

162 名前:nobodyさん mailto:sage [2007/09/28(金) 21:25:32 ID:???]
>>140
「Perlはあなたが自分の首を締めるのに十分なロープを
提供しているのだ」てな忠告がラクダ本に載ってたな。

#--- Filter/Range.pm ---
package Filter::Range;
use strict;
use Filter::Simple sub {
  s{
    my \s* \( \s*
    ([\$\@%][A-Z_a-z][0-9A-Z_a-z]*?) ([0-9]+) \.\. ([0-9]+)
    \s* \)
  } {
    'my(' . join(',', map "$1$_", $2 .. $3) . ')'
  }egx;
}; 1;
__END__

#!/usr/local/bin/perl -w
use strict;
use Filter::Range;
my($s1..20) = (1..20);
print $s10;
__END__

163 名前:nobodyさん mailto:sage [2007/09/28(金) 21:41:10 ID:???]
Damian Conway ぷろだくとか。



164 名前:nobodyさん [2007/09/28(金) 22:27:42 ID:3wKaaJqT]
サブルーチンを10個くらい作ってあります。
同じディレクトリに5個くらい違うCGIファイルがあります。
5個のCGIファイル全てに、冒頭の10個のサブルーチンをコピペしてあります。

print routin(1,2);
5個のCGIふぁいるではこういう記述でサブルーチンが使えます。
どうもこれを外部ライブラリ化とかいうのすると
print パッケージ名::routin(1,2);
で使えるようになるとか。

でもパッケージ名を入れるとなると5個のCGIファイル全てを書き直すのが嫌です。
またパッケージ名が入って見た目がウザくなるのも嫌です。

外部ライブラリにしながらも、メインパッケージにあるのと同じごとくサブルーチンを使うにはどうすればいいでしょうか?
メインパッケージに初めに全部もらえばいけるんじゃないかとか妄想していますが。

165 名前:nobodyさん mailto:sage [2007/09/28(金) 22:30:18 ID:???]
>>164

>>19読んで応用しろ。キーワードはexporter

166 名前:nobodyさん [2007/09/28(金) 22:45:38 ID:3wKaaJqT]
orz

167 名前:nobodyさん mailto:sage [2007/09/28(金) 23:42:41 ID:???]
べつにExporterなんかいらないだろ
全部plファイルにしてrequireでつなげろ

168 名前:nobodyさん mailto:sage [2007/09/28(金) 23:57:57 ID:???]
おれだったらOOPが楽かな

169 名前:nobodyさん mailto:sage [2007/09/29(土) 00:02:00 ID:???]
>>167
すげえまじで感動したw
つか、require '....pl' ってperl4時代のモンだと思って使ってもなかったよ。
これからも使わんけどw
もちろんstorableとか使用するときには必須>require

170 名前:nobodyさん mailto:sage [2007/09/29(土) 00:04:52 ID:???]
があ、Data::Dumper の読み込み時だ。require 使うのorz...

171 名前:nobodyさん [2007/09/29(土) 00:51:07 ID:2KPMiuug]
>>167
え?
明日試してみます。

172 名前:nobodyさん mailto:sage [2007/09/29(土) 02:58:11 ID:???]
みんなrequire つかわないのかw
おらぁ使いまくりだ
メインCGI一個に 汎用サブルーチンplに処理ブロックごとにpl分割
これが楽でいい。


173 名前:164 [2007/09/29(土) 06:51:46 ID:2KPMiuug]
>>167
できないんですけど・・・・
s.plのpackage s;にサブルーチンを移しました。
で、

print check(1,2,3,4,5);
でエラーでました。メインパッケージにそんな関数ないと。
もちろん
print s::check(1,2,3,4,5);
なら動作します。

どういうことですか?
ウソ付きましたか?



174 名前:nobodyさん mailto:sage [2007/09/29(土) 07:14:33 ID:???]
3時間の出来事をシミュレーションするプログラムを書いています。
一応完成したのですが、時間の捉え方が「残り時間」というものになっています。
これを例えば、9時〜12時の間とかで捉えたいのです。

今は内部の処理が進むにつれて「残り時間」の変数を減算して、「残り時間」変数が0になったら処理おしまいというものです。
これを開始時刻と終了時刻を初めに決めて、+10秒とか命令出しながら実際に時間が進んでるかのような感じに
「今何時?」と聞けるくらいの感じに変えてみたいのです。

使えそうなモジュールがあったら教えてください。

175 名前:nobodyさん mailto:sage [2007/09/29(土) 07:57:19 ID:???]
>>173
>package s; に移しました。
何故移す?

176 名前:nobodyさん mailto:sage [2007/09/29(土) 12:27:00 ID:???]
変数名を参照することって出来ますか?

$test = 'abc';

という変数があるとして、$testの'test'の部分を知りたいのです。
例えば、@a = ($test, $boo, $hoge);
という配列があるとして、
これを それぞれ変数名 => 値 というハッシュに変換したいのです。
$h{'test'} => 'abc'
のように。

177 名前:nobodyさん mailto:sage [2007/09/29(土) 13:07:39 ID:???]
>>176
> @a = ($test, $boo, $hoge);
この時点で $a[0] には $test が持つ値 'abc' そのものがコピーされて入る。
よって代入後に @a 内の各値からコピー元の変数名を辿る事はできない。

178 名前:nobodyさん [2007/09/29(土) 21:46:18 ID:m5gmrcyE]
文字コードをUTF-8に変換したいのですが

use Jcode;
$str = "あああ";
print Jcode->new($str)->utf8;

とすると
Undefined subroutine &Jcode::_Classic::euc_utf8 called at パス/Jcode/_Classic.pm line 255.
というエラーが発生してしまいます。

ちょっと調べたらJcodeのバージョンを下げれとありましたがそれは無理なので何か他に方法はないでしょうか。

179 名前:nobodyさん mailto:sage [2007/09/30(日) 02:32:26 ID:???]
未だにJcodeが使われるのは子飼弾がちゃんとEncodeの使い方を解説しないからなのか・・・

180 名前:nobodyさん mailto:sage [2007/09/30(日) 04:35:03 ID:???]
>>178

使っているPerlのバージョンは?
Jcodeはどのようにインストールしたもの?

>>179
Web関連のムックで書いてなかったか? >Enocdeの使い方



181 名前:164 [2007/09/30(日) 08:09:20 ID:9pVP3h63]
>>175
そりゃ中身なにもないものをrequireしてもしょうがないからですよ。
一体何が間違ってるというんですか?

メインパッケージにないものをrequireを使えば
routin(1,2,3);
で呼べるというのは本当なんですか?ウソなんですか?

182 名前:nobodyさん mailto:sage [2007/09/30(日) 08:18:04 ID:???]
ほらね、strictとwarningsを無理に使うと本末転倒になるでしょ。

183 名前:nobodyさん mailto:sage [2007/09/30(日) 08:34:17 ID:???]
>>181
誰もウソなんかついちゃいない。
お前が全然理解できてないだけ。



184 名前:164 [2007/09/30(日) 08:40:27 ID:9pVP3h63]
>>183
だから何をどうしろというんですか?
最小コードを教えてください。


185 名前:nobodyさん mailto:sage [2007/09/30(日) 08:49:27 ID:???]
>>182
181の事を示して言ってるならwarningsもstrictも無関係にエラー出るぞ。
176はそう言う次元のお話しではないし、
178は、my宣言してないからwarningsとか宣言してないと見るが?

別にstrict,warningsを嫌うのは勝手だけど、事象は切り分けてくれ。
ここは初心者スレで勝手に脳内変換して>>182を信じてしまう人が
いる可能性もあるんだから。




186 名前:nobodyさん mailto:sage [2007/09/30(日) 08:59:25 ID:???]
>>184
うざいなあ、ここで文句垂れてる間にググればとっくに exporter の使い方も
習得出来てるだろうに

% cat foo.pl
sub foo{ 1 ; }
1;
% perl -le 'require q{foo.pl} ; print foo()'
1


187 名前:nobodyさん mailto:sage [2007/09/30(日) 09:40:39 ID:???]
>>185
ああごめん。mod_perlと混同して勘違いしてた。
Perlが初めての方なら尚更strict/warningsは
ややこしくなるから不必要だと思うけど。

188 名前:164 [2007/09/30(日) 10:10:19 ID:9pVP3h63]
>>186
突っ込みが下手すぎ。
package使うなって言って欲しかった。

189 名前:nobodyさん mailto:sage [2007/09/30(日) 10:12:50 ID:???]
>>188
くだらない質問でもど偉そうに聞いていいスレ
pc11.2ch.net/test/read.cgi/php/1158647441/

190 名前:164 [2007/09/30(日) 11:09:19 ID:9pVP3h63]
もしもお前に部下がいるなら可哀想だ。
まだ使う側でないというなら、今のうちに間違いを指摘してきた相手が目下だと反省のできない上司にならないよう気をつけておけ。


191 名前:nobodyさん mailto:sage [2007/09/30(日) 12:11:48 ID:???]
>>188
「最小コードを書け」
って言われたから書いたまでだが?
>>175で package に関する点は指摘されてるだろ

>>187
mod_perl の mod の字も出てないのに…


192 名前:nobodyさん mailto:sage [2007/09/30(日) 12:51:11 ID:???]
自分の読解力、理解力の無さを棚に
上げて回答者を批判する男の人って…

193 名前:164 [2007/09/30(日) 14:35:18 ID:9pVP3h63]
>>191
>>175のどこがpackageに関する点の指摘なのよ。
あれじゃサブルーチンを別ファイルに移した事の指摘だろ。

>>192
女ならいいのか?クソフェミニストめ。



194 名前:nobodyさん mailto:sage [2007/09/30(日) 15:37:17 ID:???]
質問してもよろしいでしょうか?
すみませんが宜しくお願いいたします。

特定の契機を迎えたとき?
@_や$_には値が自動でセットされるようになっていますよね?
その契機の一覧みたいなものが知りたいのですが、膨大ですか?
うまくまとめてるサイトあれば教えてください。

195 名前:nobodyさん mailto:sage [2007/09/30(日) 15:38:11 ID:???]
やはり読解力の欠片も無いな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<271KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef