【Perl 】初心者コーナーPart7

このエントリーをはてなブックマークに追加
952名無しさん@お腹いっぱい。:01/10/24 01:07 ID:???
>>950
@kkk = ([3,4,5],[2,3,4],[6,7,8]);
ではなく?
953名無しさん@ほっとぞぬ :01/10/24 01:10 ID:???
>> 951、952
1次元で () で囲むので多次元でもそうだと思い込んでいました。
有難うございました。
954名無しさん@お腹いっぱい。:01/10/24 02:11 ID:Haoaz9Y7
$foo{bar}->[0] = 'あ';
$foo{bar}->[1] = 'い';
$foo{bar}->[2] = 'う';

というのがある状態で

foreach $hoe ( $foo{bar} )
もしくは
foreach $i ( 0 .. $#foo{bar} )

みたいな取り出し方ってできないのでしょうか?
955名無しさん@お腹いっぱい。:01/10/24 02:20 ID:???
取り合えずperllol辺りを良く読んだ方がいいかと・・・
956つーか。。:01/10/24 02:47 ID:???
>>949
のレス貰って分からないとマズイですよ
配列であれハッシュであれ、デリファレンスしたものに対して操作しましょ
957名無しさん@お腹いっぱい。:01/10/24 04:48 ID:6Q3D2kbA
#!/usr/local/bin/perl
print "content-type: text/html\n\n";

$g=25425425124%241;
print "$g\n";

これ実行すると0が返ってくる・・・別のサーバーに置くと14が・・意味不明。
わかる人いますか?
958名無しさん@お腹いっぱい。:01/10/24 04:55 ID:???
マルチポストはやめれ。
http://piza2.2ch.net/test/read.cgi/tech/991994996/505-
959名無しさん@お腹いっぱい。:01/10/24 05:51 ID:???
変数の初期化って特に必要無いんでしょうか?
どうもPERLの作法に慣れなくて・・・・
960名無しさん@お腹いっぱい。:01/10/24 06:02 ID:???
>>957
再現しないぞー て当たり前か(´Д`;)
961  :01/10/24 07:20 ID:WMwwHA4O
目か頭が壊れてる可能性が高いですね
962名無しさん@お腹いっぱい。:01/10/24 07:26 ID:???
#!/usr/bin/perl -wT

require japu;
963名無しさん@お腹いっぱい。:01/10/24 07:32 ID:???
>>959 その感じだとCからかい?、だとしたらPerlは不定では無い
0又は空文字列って感じ(C#って良いよね)
今の君は白百合女学園からフリースクールに転校してきたような状態なんだよ へへ

他に嵌るパターンて言うと、ループ、再帰、mod_perl環境、undumpした実行ファイル
位かな、どれも前のウンコが入っててシボーンて奴だからそんなに凶悪じゃ無いし。
勿論慣れなきゃ全部初期化してもOK、コストがどうとか言う奴はホットケ(w
書いてればそのうち慣れてくるもんだし。

**もし**宣言の事言ってるんだったら、こっちはちゃんとしよう。
常時strict縛りがお勧め
964954:01/10/24 09:57 ID:???
>>955
PerlLoL読みました。
参照ではなく実体で渡す必要があるから

foreach $hoe ( @{$foo{bar}} ){
foreach $hoe ( $#{$foo{bar}} ){

とやればいいのですね!
無事解決しました。ありがとうございます。
965名無しさん@お腹いっぱい。:01/10/24 09:59 ID:???
なんかここが「かちゅ〜しゃ」で読めなくなってる。
なぜに?
966名無しさん@お腹いっぱい。:01/10/24 10:00 ID:???
my $ref = func();
print $$ref;

sub func{
 my $hoge;
 $hoge = "hoge";
 return \$hoge;
}

Cでこれやると駄目だよねえ。PerlでOkな理由がわかんない・・・。
967名無しさん@お腹いっぱい。:01/10/24 11:30 ID:???
>>967
Perlのmy変数はCのauto変数と違い、
・スタックには積まれるわけではない。
・参照がなくなるまで実体も消えない。
と考えればよいでしょう。
968911:01/10/24 11:41 ID:EX0y50So
まずページを開いた時に

sub login {

if ($FORM{'pass'} ne "$pass") {
&header;
エラーメッセージ表示。
exit;
}
else{ 日記のCGIそのまま }
exit;
}

でパスをチェックして、つぎに日記CGIないのパスチェックで管理モードに移行させたいのです。
日記CGI単体での動作確認は取れてます。
どこがいけないのでしょうか?
969:01/10/24 11:49 ID:1tmsVagU
use strict している状態で eval() をした場合
strict がエラーになっても $@ になにも設定されません(T_T
Known Bug でしょうか?

use strict;
eval(<<'EOF;');
$X = 1;
EOF;
if(defiend($@)){
print "[$@]\n";
}
970名無しさん@お腹いっぱい。:01/10/24 12:13 ID:???
>>911
次のページに移動するとき
hoe.cgi?pass=password
みたいに渡してる?
971名無しさん@お腹いっぱい。:01/10/24 12:16 ID:???
@fff[0..1][2]
のようなスライスをすることは出来ますか?
(スライスとは言わないのかも)
972JAPU ◆JAPUTeX. :01/10/24 12:28 ID:???
>>969
"Bug" かどうかは分かりませんが、Perl 5.6 では $@ に "Global symbol ..."
が格納されます。
973:01/10/24 12:31 ID:1tmsVagU
>>972
ありがとうございます。
こちらは Perl5.005_03 です。
ふーむ どうしようかなぁ
STDERR には "Global symbol ..." が出力されるので
こいつを捕まえるのがいいのかな。
974:01/10/24 12:34 ID:1tmsVagU
STDERR, STDOUT を上書きして文字列として取得したり
はたまた 文字コード変換を追加したりできるモジュールとか
ありませんでしょうか?
&hogehoge(STDERR, \&buffering);
&hogehoge(STDOUT, sub { new Jcode(@_)->sjis(); });
みたいな感じで。
CPAN検索中....でも探すのヘタなんですよ(TT
975名無しさん@お腹いっぱい。:01/10/24 12:38 ID:???
まんまのがありますね。
http://search.cpan.org/search?dist=Tie-STDERR
976名無しさん@お腹いっぱい。:01/10/24 12:41 ID:VLOxIr/R
use CGI;
$cgi = new CGI;
%FORM = $cgi->Vars;

をやろうとしています。Win32上の Perl 5.6.1では出来るのですが
プロバイダにある 5.005_03 では
Undefined subroutine CGI::Vars
と言われてしまいます。

古いバージョンの CGI.pmではどのように要素を取り出したら
よいのでしょうか?
977名無しさん@お腹いっぱい。:01/10/24 12:47 ID:???
そろそろ次スレだな。
978名無しさん@お腹いっぱい。:01/10/24 13:09 ID:???
>>976
%FORM = map{ $_, $cgi->param($_) } $cgi->param();
979名無しさん@お腹いっぱい。:01/10/24 13:15 ID:???
$logfile
---
2
1<>dataA<>dataB<>dataC<>
2<>dataA<>dataB<>dataC<>
EOF

処理
open(NUM, "< $logfile");
@log = <NUM>;
close(NUM);
$num = shift(@log);
chomp($num);
$num++;
$data = "$num<>$a<>$b<>$c<>";
unshift(@log, "$num\n");
push(@log,"$data\n");
open(ADD, "> $logfile");
print ADD "@log";

$logfile
---
3
1<>dataA<>dataB<>dataC<>
2<>dataA<>dataB<>dataC<>
3<>dataA<>dataB<>dataC<>
EOF

という風に
unshift(@log, "$num\n");
では行頭に半角スペースが入らなかったのに
push(@log,"$data\n");
open(ADD, "> $logfile");
としたら各行の行頭に半角スペースが入ってしまいました。
全く分からないのですが、どこで半角スペースが入ってしまっているのでしょうか?
980979:01/10/24 13:18 ID:???
あわわ。。
半角スペース失敗。全角で書きます。
処理後の$logfile
---
3 #ここには入ってない。
 1<>dataA<>dataB<>dataC<> #ここの行頭
 2<>dataA<>dataB<>dataC<> #ここの行頭
 3<>dataA<>dataB<>dataC<> #ここの行頭
EOF
981名無しさん@お腹いっぱい。:01/10/24 13:23 ID:???
>>979 過去ログ見ようね
http://corn.2ch.net/php/kako/996/996075607.html の409-415
982966:01/10/24 13:24 ID:???
>>967
参照カウンタ持ってるのか。なるほどさんくすありがd
983979:01/10/24 13:33 ID:???
>>981
う…。失礼しました。
逝ってきます。

過去ログ全部取得して保存しておこう…。
984名無しさん@お腹いっぱい。:01/10/24 14:03 ID:???
my 新スレ立てるよー;
985名無しさん@お腹いっぱい。:01/10/24 14:14 ID:???
お願いします。
ってもう立ってるね。
コピペ中っぽいのでまだリンクは張らず。
986これが貼りたかったーー:01/10/24 14:18 ID:???
             , -―- 、
        , l[》《]|      ヽ
        / i/ i ノノノ ))))〉     / ̄ ̄ ̄ ̄ ̄
.      / i i |(リ ( | | | !    / 質問に答えてくれたみなさん
      〈ヘ|_|l| l ゝ~ lフ/|   <.  .ありがとうっ
       / | | |( ヽwliヽ |       \ このスレはおしまいだよ。
      / /! | l ヘ《~ヘii~∧ ∧     \_____
     /  /ノノ! ノ|リ〉 \/( ゚ω゚)
   / ,  ./-‐- 、/V\ハ_ヲUU
   !/ ./    / / |   ゝ つつ
   ヽ_/   ./    !    jj  \
       /               i
      〈   /        |      |'
       ゝ /    l    |   !/
        `〜‐-L__」〜'^

(´-`).。oO(新スレッドだろう・・・・
http://ebi.2ch.net/test/read.cgi/php/1003900311/l50
)
987名無しさん@お腹いっぱい。:01/10/24 14:19 ID:???
お疲れさまです。
今後もお世話になります。
988名無しさん@お腹いっぱい。:01/10/24 14:26 ID:???
新スレに書くと10までの参考URL書くスペースをつぶしてしまうので…。

新スレの>7氏宛て
かちゅ〜しゃでdat読んでました。
ごめんなさい。
989名無しさん@お腹いっぱい。:01/10/24 15:15 ID:???
次スレ:【Perl 】初心者コーナーPart8
かちゅ〜しゃ用リンク
http://ebi.2ch.net/test/read.cgi?bbs=php&key=1003900311
990キリ番ゲッター:01/10/27 09:04 ID:p/1joBiQ
1000間近スレッド発見
991キリ番ゲッター:01/10/27 09:05 ID:p/1joBiQ
1000狙うからな
邪魔するんじゃねーぞ
992キリ番ゲッター:01/10/27 09:05 ID:p/1joBiQ
俺様が1000とったら ウラビデオ 記念にさしあげます
993キリ番ゲッター:01/10/27 09:05 ID:p/1joBiQ



0あげ!!!!!!!!!    pupupu
994キリ番ゲッター:01/10/27 09:07 ID:p/1joBiQ
ウラビデオ配布場所は ここ!!!!
http://www.megabbs.com/cgi-bin/readres.cgi?bo=douga&vi=991411619&rm=100
995キリ番ゲッター:01/10/27 09:07 ID:p/1joBiQ
いいか
邪魔したら ウラビデオは 配布中止だ
996キリ番ゲッター:01/10/27 09:09 ID:p/1joBiQ
お前ら
ROMだけしておけ

カキコするな


fuck
997キリ番ゲッター:01/10/27 09:10 ID:p/1joBiQ
どうやら この板の住人は
俺様だけのようだ


勝ったな
998キリ番ゲッター:01/10/27 09:11 ID:p/1joBiQ
1000ほしいか

それとも ウラビデオほしいか!!!!!!!
999キリ番ゲッター:01/10/27 09:11 ID:ROzJuflR
俺様=神

邪魔するやつ=うんこ
1000キリ番ゲッター:01/10/27 09:23 ID:ROzJuflR
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。