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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2008/08/06(水) 22:54:32ID:???
Perlのコーディングで困ってる人のスレです。

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

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

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

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1203935151/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0848nobodyさん2009/02/06(金) 15:32:13ID:???
>>842 だったw
0849nobodyさん2009/02/06(金) 15:34:06ID:???
>>847
良く書けていたサイトがあれば教えて欲しい。
0850nobodyさん2009/02/06(金) 15:34:13ID:???
>>843
>>846

つ 汚染チェック
0851nobodyさん2009/02/06(金) 15:37:21ID:???
PerlでWebプログラミングしてて-Tの汚染チェック知らないとかヤバいだろw
0852nobodyさん2009/02/06(金) 15:46:56ID:???
>>847
つ 確認用オプションは-wTcがオススメ
0853nobodyさん2009/02/06(金) 16:29:24ID:???
$bosyu の値が1ならば、登録フォームを表示させる。
0ならば、登録フォームを表示させない。
1か0かは、管理人用ページから設定することができる。 という感じでPerlを組みたいのですが、
まだまだ初心者でよく分かりません。
一応、
<input type=radio name=bosyu value=1>表示する
<input type=radio name=bosyu value=1>表示しない
というフォームを作り、登録フォームの表示部分に、
if ( $bosyu == 1 ){
 #登録フォーム
}
else {}
というようにしました。
しかし、管理人画面から1にしようが0にしようが、登録フォームはどのみち消えてしまいました。
この場合、どうしたらよいのでしょう?;
08548532009/02/06(金) 16:30:28ID:???
<input type=radio name=bosyu value=1>表示しない
正しくは、
<input type=radio name=bosyu value=0>表示しない

でした。申し訳ありませんが、ご教示願いますm(_ _)m
0855nobodyさん2009/02/06(金) 16:36:45ID:???
要するに、$bosyuに1がセットされないってことでおじゃるか
URLデコード的なものをしてないんじゃ?
0856nobodyさん2009/02/06(金) 16:46:23ID:???
>>855 さん
ありがとうございます。m(。。;)m
URLデコード・・・ですか?今から検索かけてみます;

もしよろしければ、
http://www.77c.org/d.php?f=nk5918.lzh
に本体をアップロードしましたので、修正箇所など教えていただけますと助かります。
私自身が追加しましたのは、行381,行382,行678,行683,行684 になります。
0857nobodyさん2009/02/06(金) 16:51:07ID:???
$bosyuじゃなくて$FORM{bosyu}でやってみれ
0858nobodyさん2009/02/06(金) 17:05:24ID:???
$bosyu == 1
ってやりたいなら明示的に int(入力値) ってやったほうがいい
でなけりゃ 0 or 1 じゃなくて TRUE or FALSE にして、eq を使うとか
0859nobodyさん2009/02/06(金) 17:08:50ID:???
>>857 さん
ありがとうございます。
やってみましたが、やはり0,1に関わらず登録フォームが消えてしまいました;

>>858 さん。
ありがとうございます。
今からやってみたいと思います。
0860nobodyさん2009/02/06(金) 17:17:25ID:???
>>858 さんの方法で試してみましたが、やはりできませんでした。
ご迷惑おかけしてしまい申し訳ないです;
0861nobodyさん2009/02/06(金) 17:33:20ID:???
★三 【 スクリプト改造工房 PART 9 】 ★三
http://pc11.2ch.net/test/read.cgi/php/1143834740/
0862nobodyさん2009/02/06(金) 17:36:41ID:???
これまたひどいスクリプト
0863nobodyさん2009/02/06(金) 19:09:08ID:???
>>862
そんなこと無いだろうさすがに

と思ったけど、これは酷いw

$bosyu 自体読み込みしてないけりゃ、$bosyu じゃなくて bosyu とかなってる始末

ログにはコメントしか出力してないし、CGI 君はどうやって表示するしないのフラグを知ればいいの?

もっと流れを知ったほうがいい。

あと、このスクリプトは酷いので別のを使ったほうがいい
0864nobodyさん2009/02/06(金) 19:13:45ID:???
コレは酷い
strictすると駄目なので、ログから取得

Unquoted string "bosyu" may clash with future reserved word at 〜.cgi line 681
Name "main::e" used only once: possible typo at 〜.cgi line 538
Name "main::msg" used only once: possible typo at 〜.cgi line 210
Name "main::s" used only once: possible typo at 〜.cgi line 538
Name "main::c" used only once: possible typo at 〜.cgi line 538
Name "main::isdst" used only once: possible typo at 〜.cgi line 145
Name "main::yday" used only once: possible typo at 〜.cgi line 145
Name "main::sec" used only once: possible typo at 〜.cgi line 145
Use of "do" to call subroutines is deprecated at ./jcode.pl line 328
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 226
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 226
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 226
Use of uninitialized value $FORM{"com"} in substitution (s///) at 〜.cgi line 231
Use of uninitialized value $FORM{"com"} in substitution (s///) at 〜.cgi line 231
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 153
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 153
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 153
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 153
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 153
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 153
Use of uninitialized value $FORM{"action"} in string eq at 〜.cgi line 191
Argument "bosyu" isn't numeric in numeric eq (==) at 〜.cgi line 681
08658532009/02/06(金) 19:19:01ID:???
そんなに酷かったのですか・・・
私自身で追加した行は酷いと言われても仕方が無いと思っていましたが、
スクリプト自体が酷い となるとびっくりです。

ただ、今の私にピッタリのPerlスクリプトなので、どうしてもこれを使いたいのですが・・・
今まで色々と検索かけてみたり、ソースを変更してみたりしたのですが、
やはり私一人の力ではどうしようもできません・・・
もしよろしければ皆さんの「ここをこうすればいい」などの意見を参考にしたいです。
厚かましい願いではありますが、どうかご教示して頂けませんか?;
0866nobodyさん2009/02/06(金) 20:12:20ID:LbIRe9/S
とりあえず、他の部分は見る気にもならないくらいの書き方なので、ピンポイントで。

どこのサーバで動作させるつもりかもわからないけどCGI.pmが入ってること期待して。

use CGI;
my $q = new CGI;
my $is_visible = $q->param('bosyu');

if ($is_visible) {
登録フォーム表示コード
}

で、いけるんじゃね?




0867nobodyさん2009/02/06(金) 20:37:48ID:???
>>866 さん
ありがとうございます。
CGI.pmは先ほど試したのですが、使うとCGI自体の動作がおかしくなってしまうので
使えませんでした。
サーバーはWinXPのApache2で、Perl5を使用しています。
0868nobodyさん2009/02/06(金) 20:44:48ID:???
>>867 自宅サーバ?
0869nobodyさん2009/02/06(金) 20:45:49ID:???
>>868 さん
はい、自宅サーバーで運用しています。
0870nobodyさん2009/02/06(金) 21:08:43ID:LbIRe9/S
どんな風におかしきなる?
CGI.pmでおかしくなるとは考えにくいけど。
use CGI は2行目あたりにきちんとかいてる?
0871nobodyさん2009/02/06(金) 21:18:08ID:???
>>870 さん
はい、
use CGI; を2行目に挿入した時点では正常に動作していますが、
3行目以降で
my $q = new CGI;
my $is_visible = $q->param('bosyu');
を挿入しますと、サブルーチンで作った画面へアクセスすることが出来なくなってしまいます。
>>856のスクリプトですと、管理画面等に入ることが出来なくなります。
その際、エラー文を吐き出すことは無く、画面が変わらずトップページのまま といった感じです。
0872nobodyさん2009/02/06(金) 21:37:53ID:LbIRe9/S
なるほど。

それなら
&decodeの下にその2行をいれてみて。
それでだめなら、decodeファンクションをかきかえないといけないかな。
0873nobodyさん2009/02/06(金) 22:58:05ID:???
>>852
WTCって/bin/ladenのせいで無くなっちゃったんじゃなかった?w
0874nobodyさん2009/02/07(土) 01:10:56ID:???
use Carp; してるモジュールを継承してもcroakが使えないのは何故?
親が使える関数は全て子供も使えるのでは?
0875nobodyさん2009/02/07(土) 01:24:33ID:???
質問です。
既存の配布スクリプトをちょっくら改造しようと思ったのですが、
フォームの内容が空の時のみ処理をするといった部分

if( hogehoge eq "" ) {
#処理
}

これに加えてフォームの内容が特定の内容の場合も処理をするべく

if( hogehoge eq "" || hogehoge eq = "関東") {
#処理
}

このようにやったのですがフォームの内容が関東でも処理してくれません。
日本語がまずいのでしょうか?
どうか解決策をご教授くださいませ。
0876nobodyさん2009/02/07(土) 01:29:49ID:???
>>875
=はいらないんじゃ?

それより、それでエラーでないのか?
0877nobodyさん2009/02/07(土) 01:31:18ID:???
eq = はtypoだよな?
だとしたら、hogehogeの内容をprintしてみては?
0878nobodyさん2009/02/07(土) 01:37:04ID:???
hogehogeって、hogehogeなのか。
0879nobodyさん2009/02/07(土) 02:13:03ID:Bz2XlMXf
ActivePerl-5.10.0.1004-MSWin32-x86-287188.msi
をインストールして、Cからコンバートできるらしいとの情報をみつけたので
hoge.cをつくろうと、
C:\Perl\binへhoge.plをおき
プロンプトで
C:\Perl\bin>perl -MO=C hoge.pl > hoge.c
を実行したところ

Can't locate B/C.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at (
eval 1) line 18.
BEGIN failed--compilation aborted at (eval 1) line 18.
BEGIN failed--compilation aborted.

とでるのですが、どうやってやればよいのか非常に困っています。
どなたか何卒よろしくおねがいいいたします。
08808752009/02/07(土) 03:07:36ID:???
すみません、=はタイポです。

自己解決しようとバグフィックスして、
結果文字コードが不全だったようで
変数の文字コードを変換したら無事に動きました。

お騒がせすみませんでした。
0881nobodyさん2009/02/07(土) 04:10:24ID:???
>>879
B/C.pmは5.10から標準で無くなった。
B/C.pmを入れるか、5.8系にするかしろ。

…でも正直それだけの価値は無いよ。
コンバートが上手く行くのは、すげえ初歩のスクリプトのみ。
0882nobodyさん2009/02/07(土) 06:37:23ID:???
>>873
オプションを繋げて書くって知らないんですね、わかります。
0883nobodyさん2009/02/07(土) 06:59:37ID:???
これは酷い、ネタだと思うけど

>>873
Perlのオプション知らないの??>>852の書いてあるのはバラしたら
-w
-T
-c
各々のオプションを一々チェックするのは時間のムダ
上のオプションを繋げて書くと
-wTc(順番は書く人によって変わる、例えば-cwTや-Tcwなんかでもおk)
必要なオプションをつけてテストするのは当然の事だが
-Tオプション知らなかったり、オプションを繋げて書くのを知らなかったり(オプションだと気付いてない?)
少しは勉強してからPerlやれよ
0884nobodyさん2009/02/07(土) 07:19:27ID:???
>>883
ここにいるのはラクダ本どころか入門書すら読んだ事無い香具師がいっぱい
いちいち驚かない方が良い
0885nobodyさん2009/02/07(土) 08:07:35ID:???
初心者スレでいちいち知識を自慢するなよせせこましい
0886nobodyさん2009/02/07(土) 08:37:19ID:???
>>874
継承したいならuse baseか@ISAを使うこと。
0887nobodyさん2009/02/07(土) 08:45:20ID:???
>>883
ってか、ネタで書いてるんだろうからそんなに怖い顔してレスするなよ
0888nobodyさん2009/02/07(土) 09:21:29ID:???
>>883
/bin/ladin にもつっこんでやれよ。
0889nobodyさん2009/02/07(土) 09:23:04ID:???
/bin/laden だった orz
0890nobodyさん2009/02/07(土) 10:40:23ID:???
>>889
つ どんまい
0891nobodyさん2009/02/07(土) 14:01:02ID:???
こんな風に秒数から適切な時刻の形式に変換したいです。
45 -> 45
130 -> 2:10
3601 -> 1:00:01
どうしたらいいでしょうか?
DateTime->new(second => 4032)とかしたらyearとかも入れろって怒られました。
0892nobodyさん2009/02/07(土) 14:10:32ID:???
-c は syntax チェックだけで実行しながらのデバッグはできねーぜ?
0893nobodyさん2009/02/07(土) 15:08:36ID:???
>>891
#!/usr/bin/perl -w
use Scalar::Util qw(looks_like_number);
use strict;

sub sec2hhmmss {
  my $sec = int(looks_like_number($_[0]) ? $_[0] : 0);
  my $min = int($sec / 60); $sec %= 60;
  my $hour = int($min / 60); $min %= 60;
  my $time = join ':', map sprintf('%02d', $_), $hour, $min, $sec;
  $time =~ s/^[0:]+//;
  $time || 0;
}

print map sec2hhmmss($_) . "\n", (
  45, 130, 3601, 86420, 'seconds', undef,
);
__END__
0894nobodyさん2009/02/07(土) 16:20:40ID:dq0WM+XP
ActivePerl Version 5.8.9.825 をいれ直して、
hoge.cをつくろうとC:\Perl\binへhoge.plをおき プロンプトで
C:\Perl\bin>perl -MO=C hoge.pl > hoge.c を実行したところ
Starting compile
Walking tree
Prescan
Tie::StdHash has method TIEHASH: saving package
Tie::Hash has method new: saving package
Tie::ExtraHash has method TIEHASH: saving package
Regexp has method DESTROY: saving package
Errno has method TIEHASH: saving package
Exporter saved (it is in Errno's @ISA)
Net::Ping has method new: saving package
Net::Telnet has method new: saving package
IO::Socket::INET saved (it is in Net::Telnet's @ISA) IO::Socket saved (it is in IO::Socket::INET's @ISA) IO::Handle saved (it is in IO::Socket's @ISA)
POSIX::SigAction has method new: saving package POSIX::Termios has method new: saving package POSIX::SigSet has method new: saving package POSIX::SigRt has method new: saving package
Saving methods
No definition for sub Fcntl::O_LARGEFILE
No definition for sub Fcntl::O_LARGEFILE (unable to autoload) No definition for sub Fcntl::F_SETLK64
No definition for sub Fcntl::F_SETLK64 (unable to autoload) No definition for sub Fcntl::F_SETOWN
No definition for sub Fcntl::F_SETOWN (unable to autoload) No definition for sub Fcntl::O_DSYNC No definition for sub Fcntl::O_DSYNC (unable to autoload)
Can't locate object method "IVX" via package "B::NV" at C:/Perl/lib/B/C.pm line
650.
CHECK failed--call queue aborted.

となり0行のCファイルができました。 どこに問題があるのでしょうか?何卒よろしくお願いします。
0895nobodyさん2009/02/07(土) 16:26:29ID:???
もとの pl さらせよバカチン
0896nobodyさん2009/02/07(土) 18:52:05ID:???
バカチンって関東ではふつうにいうの?
俺は「あたしんち」で初めて知ったから
バカチンって聞くと「あたしんち」のお母さんが
口から火を吐いてる絵が思い浮かぶ
0897nobodyさん2009/02/07(土) 19:28:54ID:???
俺はローマ教皇の姿が思い浮かぶ
0898nobodyさん2009/02/07(土) 19:34:33ID:???
>>893
やはり関数自作ですか。ありがとうございました。
0899nobodyさん2009/02/07(土) 19:57:50ID:3N01Kgc2
それはさておき、日本語混じり文の中の全角数字を半角数字に変換したいのですがやり方が分かりません。
ググッて見つけた方法をいくつかテストしてみたのですが、全てダメでした。
例:「2ちゃんねる」を「2ちゃんねる」に変換したい。

・テストコードその1(正攻法)
my $txt = '2ちゃんねる';
$txt =~ tr/0−9/0-9/;
結果:文字化け 「0Q0ソ000ヒ0」

・テストコードその2(Jcodeを使うといいらしい?)
use Jcode;
my $txt = '2ちゃんねる';
my $txt2 = jcode($txt)->tr('0−9', '0-9');
結果:文字化け 「」イ、d网、ヘ、」

・テストコードその3(tr('[0-9]', '[0-9]')はEUCでないとだめ。スクリプトがSJISの場合は変換必要らしい?)
use Jcode;
my $txt = '2ちゃんねる';
my $from = jcode('0−9')->euc;
my $to = jcode('[0-9]-')->euc;
my $txt2 = jcode($txt)->tr($from, $to);
結果:文字化け 「」イ、d网、ヘ、」

・テストコードその4(スクリプトをEUCにしてjcode.pl使用)
require './jcode.pl';
my $txt = '2ちゃんねる';
jcode::tr(\$txt, '0-9', '0-9');
結果:「2」はOKだが、日本語が文字化け 「2、d网、ヘ、」

どのようにしたら、うまく変換できるでしょうか。
09008992009/02/07(土) 19:59:02ID:???
↑すいません、1行目を消してしまいました。
「ム板の質問スレってなくなったんでしょうか?」と書くつもりでした。
0901nobodyさん2009/02/07(土) 20:06:47ID:???
jcode じゃなくて Encode を使いましょう。
0902nobodyさん2009/02/07(土) 20:18:17ID:???
>>899
http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
0903nobodyさん2009/02/07(土) 20:19:34ID:???
敢えてSJISのまま
@num{qw(0 1 2 3 4 5 6 7 8 9)}= (0 .. 9);
$s=~ s/(\x82[\x4f-\x58]|[\x81-\x9f\xe0-\xfc].|.)/$num{$1} ne '' ? $num{$1} : $1/ges;

でどうよ
09048992009/02/07(土) 20:44:36ID:???
解決しました。
馬鹿馬鹿しい話ですが tr('0−9', '0-9'); の「0−9」の真ん中のハイフンまで大文字になっていました・・・。
ここを直してSjisで出力したら、テストコード3でOKでした。

use Jcode;
my $txt = '2ちゃんねる';
my $from = jcode('0-9−')->euc;
my $to = jcode('0-9-')->euc;
my $txt = jcode($txt)->tr($from, $to)->sjis;


Jcodeを使ったのは、ググッて見つけた解説がほとんどJcode使用ばっかりだったからです。
Encodeを使った場合、trするのはどうすればいいんでしょうか。
0905nobodyさん2009/02/07(土) 20:47:14ID:???
Encode tr でぐぐってみたらいいと思います。
0906nobodyさん2009/02/07(土) 20:54:43ID:???
>>904
もう、Unicode::Japanese使っちゃえよ。(遅いけど・・)
0907nobodyさん2009/02/08(日) 01:46:54ID:???
>>898
DateTime使ってるんなら簡単な関数作ればいいんじゃね?

#!/usr/bin/perl
use strict;
use warnings;

use DateTime;

my $tz = DateTime::TimeZone->new( name => 'local' );
sub s2dt {
  my $duration = shift;
  my $now = DateTime->now( time_zone => $tz )->epoch;
  my $duration_dt = DateTime->from_epoch( epoch => $now + $duration - $now );

  return $duration_dt->hms;
}

use Data::Dumper;
print Dumper s2dt(45);   # $VAR1 = '00:00:45';
print Dumper s2dt(130);   # $VAR1 = '00:02:10';
print Dumper s2dt(3601);  # $VAR1 = '01:00:01';
0908nobodyさん2009/02/08(日) 12:20:52ID:???
>>907
ドキュメントの読みの浅さが露呈して申し訳ないです。
ありがとうございました。

が、>>891をやるには、単純に
DateTime->from_epoch(epoch => 3601)
でいけると思ったのですが、
>   my $duration_dt = DateTime->from_epoch( epoch => $now + $duration - $now );
はどんな意味があるのですか?
0909nobodyさん2009/02/08(日) 18:14:28ID:bk/uRgIM
デバックってどうやるのですか?教えてください。
0910nobodyさん2009/02/08(日) 18:30:44ID:???
deback?
0911nobodyさん2009/02/08(日) 18:38:25ID:???
N88だとRUNしたときにエラーの行が表示されるでしょう?
あれですあれ。perlはどうやってやるのですか?
0912nobodyさん2009/02/08(日) 18:47:33ID:???
Perlでもエラー行出るだろう
0913nobodyさん2009/02/08(日) 18:55:22ID:???
kcatch つかうといいよw
0914nobodyさん2009/02/08(日) 18:56:22ID:???
>>911
ああ、デバッグのことか。
0915nobodyさん2009/02/08(日) 18:59:30ID:???
プロバイダとかの無料webスペースだと、色々成約があってエラーの内容を知るのって難しそう
0916nobodyさん2009/02/08(日) 19:11:47ID:???
質問の内容を推定すると、これか。
http://www.kt.rim.or.jp/~kbk/perl-5.8/perlfaq9.html#how_can_i_get_better_error_messages_from_a_cgi_program

とりあえず、こっちも。
http://perldoc.jp/docs/perl/5.10.0/perldebtut.pod
0917nobodyさん2009/02/08(日) 22:13:41ID:???
if () {} elsif() {} else {} って、どう改行してますか?人によって色々あると思うので参考にさせてください。
自分はこう書いてます。

if () {
} elsif () {
} else {
}
0918nobodyさん2009/02/08(日) 22:25:08ID:???
>>917
パッケージについてきたモジュールのソース見れ
0919nobodyさん2009/02/08(日) 23:40:09ID:???
>>908
あ。ごめん$nowいらないな
最初違うやり方で作った後に「差を出せばいっか」ってことに気づいてやったんだけど、
epoch => $duration
だけあればいいね
0920nobodyさん2009/02/09(月) 00:03:20ID:???
>>917

If () {
}
elsif () {
}
else {
}

制御文の頭が常に一列目に来るようにこんな感じで。
()の両側には1スペースを入れる。
0921nobodyさん2009/02/09(月) 00:46:19ID:???
if () {
} elsif () {
} else {
}
おれはこんな感じ
スタートとエンドが同じタブ位置って考えると、これが自然かなと自分では思ってる。
0922nobodyさん2009/02/09(月) 03:06:32ID:???
いいじゃないか、こうだって。

if()
{
}
elsif()
{
}
else
{
}
0923nobodyさん2009/02/09(月) 03:12:05ID:???
>>917
俺はこう。

if () { }
elsif () { }
else { }

嫌なんだよ、改行が。cssとかもいつもこう書いてる。
0924nobodyさん2009/02/09(月) 09:48:22ID:???
>>922
俺もこう
0925nobodyさん2009/02/09(月) 10:26:36ID:???
>>923
一行に収まらなかったらどうするの?
0926nobodyさん2009/02/09(月) 10:51:55ID:???
>>923以外全部ありかな。
0927nobodyさん2009/02/09(月) 11:44:49ID:???
以下奇怪なif-elsif-else大会
0928nobodyさん2009/02/09(月) 13:11:50ID:???
そして終了
0929nobodyさん2009/02/09(月) 19:28:09ID:???
>>925
$aaa; $bbb; $ccc
と一行にするよ。
0930nobodyさん2009/02/10(火) 00:17:09ID:???
>>920
0931nobodyさん2009/02/10(火) 00:31:04ID:???
続きは lislog.livedoor.com とかでやれよ
0932nobodyさん2009/02/10(火) 11:59:32ID:???
>>669
読んでないが激しく糞だった
ここの住人には全く必要ない
0933nobodyさん2009/02/10(火) 13:39:53ID:???
>>932
読んでないのに何で糞ってわかったの?
0934nobodyさん2009/02/10(火) 15:15:40ID:???
>>933
糞は臭いでわかるだろ
0935nobodyさん2009/02/10(火) 16:06:06ID:???
ほんとだ!
>>934から糞の臭いがするよ!!
0936nobodyさん2009/02/10(火) 17:41:55ID:???
>>935
まず自分の鼻にべったりついている糞を洗い落とせ。
0937nobodyさん2009/02/10(火) 17:59:35ID:???
電波お花畑板でやってくれ。
0938nobodyさん2009/02/11(水) 01:12:17ID:DSvC+HT2
my $num = 5;
for (my $i=0;$i<$num;$i++) {}
for my $i (0..$num-1) {}

# 両方ともしっくりこないのですが、妙案ありませんか?
# ruby の (0...5) みたいなのが希望です
0939nobodyさん2009/02/11(水) 01:26:15ID:???
for (1..5){}でできるよ
0940nobodyさん2009/02/11(水) 01:35:21ID:DSvC+HT2
>>939
レスありがとうございます。
今回は配列の添字で$iを使いたいのです。説明足らずですいません。
# かといって$[を書き換えるような事はしたくないのでw
0941nobodyさん2009/02/11(水) 01:40:31ID:???
ブロックの中では$_が使えるんだが
0942nobodyさん2009/02/11(水) 04:51:02ID:???
for my $i (0 .. 5) {} でできるよ
0943nobodyさん2009/02/11(水) 06:47:14ID:???
for my $i (0 .. 4) {} だべ
0944nobodyさん2009/02/11(水) 09:12:53ID:???
$numの値が分からないから無理やん
0945nobodyさん2009/02/11(水) 09:35:29ID:???
これでええやん。

for(0 .. 4){
  my $i = $_;

  ・・・・
}
0946nobodyさん2009/02/11(水) 10:55:50ID:???
しっくり来ないというのがよく分からない。

my $num = 5;
my $n = $num-1;
for my $i (0 .. $n) {}
0947nobodyさん2009/02/11(水) 13:33:22ID:???
値の数値じゃなくて、配列が何個目かとりたいんじゃないかな。
レス数が900を超えています。1000を超えると表示できなくなるよ。