弐ch編集のPerl講座 (231レス)
上下前次1-新
8: 弐ch編集 02/02/15 08:22 ID:??? AAS
ゴメン、やっぱり飽きたからやめるよ (=´Д`=) じゃっ
9: 弐ch編集 02/02/15 08:36 ID:??? AAS
open(OUT, "> ./log.dat") or die;
print OUT "MegabbsXP!\n";
close(OUT);
書き込み。>は上書きの記号だ。覚えろ。
print OUTもなんとなく分かるだろ?OUTに書き込むって意味。
で、クローズ。終わり。
注意すべきは>は上書きだということ。openは最初にファイルを
空にして、それからファイルハンドルとくっつけるイメージだ。
だからor dieの時、つまりopenが失敗した時には
ファイルは空、しかも書き込みもできずっていう最悪パターンだ。
省11
10: 弐ch編集 02/02/15 09:27 ID:??? AAS
($name1, $name2, $god) = ('mike', 'mary', 'nihen');
@names = ('mike', 'mary', 'nihen');
@names = qw(mike mary nihen);
%data = (name1 => 'mike', name2 => 'mary', god => 'nihen');
%data = qw(name1 mike name2 mary god nihen);
分かるよな?分かるようになれ。代入の話だ。
qwはqqと同じようなもので「配列として扱う」ものだ。空白や改行が区切りとみなされる。
qw[]やqw~~でもOK。
$line = <IN>;
($no, $name, $comment) = split(/<>/, $line);
省18
11: 名無しさん@お腹いっぱい。 02/02/15 09:42 ID:??? AAS
これ以上Perlスレ増やして何する気だ?
12(1): 賛成の反対の反対ナノだ! 02/02/15 09:53 ID:??? AAS
> 9
> だからor dieの時、つまりopenが失敗した時には
> ファイルは空、しかも書き込みもできずっていう最悪パターンだ。
>
openが失敗したのにファイルが空になるのか?
ファイルが空になるということは空文字を書きこめたということでは?
詳しく説明しろYO!
13: 弐ch編集 02/02/15 10:13 ID:??? AAS
print OUT join('<>', @log{@format}),"\n";
書き込みは当然こうなるはずだ。分かるな?次はrequire。
#! /usr/local/bin/perl
require './mytext.pl';
print qq|Content-type: text/html\n\n|;
print qq|<html><body text="#FF0000">$text</body></html>|;
exit;
mytext.plを読み込んでる。イメージとしてはスクリプトのその場所に
指定したファイルが展開されてる感じだ。つまりmytext.plが
$text = 'MegabbsXP!';
省22
14: 弐ch編集 02/02/15 10:55 ID:??? AAS
>>12
ああ、書き方がおかしかったな。flockとrenameを抜いてしまっていてはな。
print中にスクリプトが停止された場合というべきだった。
そうするとログが破壊される。途中までしか書けてないから。
15: 弐ch編集 02/02/15 11:01 ID:??? AAS
#! /usr/local/bin/perl
use strict;
$text = 'MegabbsXP!';
print qq|Content-type: text/html\n\n|;
print qq|<html><body text="#FF0000">$text</body></html>|;
exit;
use strictとは文字通りstrictというものを使うという意味だ。
てきとうにいうとstrictとは未知の値が出てくるとスクリプトエラーになる能力を
持っているライブラリってとこかな。この状態でスクリプトを組んでいけば
エラーが分かりやすくなって開発効率もあがる。
省22
16: 賛成の反対の反対ナノだ! 02/02/15 11:31 ID:??? AAS
> 15
> MyTextの$textは正式名称「$MyText::text」だ。どこの誰か、だ。
>
my $text と局所化されているのでパッケージもヘッタクリもないダロウ?
17: 弐ch編集 02/02/15 11:37 ID:??? AAS
my %tmp = ();
@tmp{qw(no name com)} = split(/<>/);
my $log = \%tmp
これで$tmp{'no'}は$log->{'no'}とも表せるようになった。リファレンスだ。
\%tmpで%tmpのアドレスが取得でき、それが$logに代入されているわけだが…
簡単には「○○のところの」が$logに入ったわけだ。$logの指すところのno。つまり$tmp{'no'}。
だから$log->{'no'}を変更すると$tmp{'no'}も変わる。
my %log = %tmp;
の場合、これは単純なコピーなので$log{'no'}を変更しても$tmp{'no'}は変わらない。別物だから当然だ。
%tmpはマイドキュメントにあるフォルダで$logはデスクトップに置いた%tmpへの
省17
18: 賛成の反対の反対ナノだ! 02/02/15 12:01 ID:??? AAS
ゴメン、やっぱり飽きたからやめるよ (=´Д`=) じゃっ
19: 賛成の反対の反対ナノだ! 02/02/15 12:17 ID:??? AAS
> 1
> なんか俺の偽者がいるから俺の本命Perlでたててみた。
>
18に漏れの偽者もいるんだけど スレはたてないでおこう。
20: 名無しさん@お腹いっぱい。 02/02/15 12:28 ID:??? AAS
このスレは一体何がしたいんですか?
間違った知識をひけらかして。
21: あぼーん [あぼーん] AAS
あぼーん
22: 名無しさん@お腹いっぱい。 02/02/16 17:51 ID:??? AAS
まじめな話、無茶苦茶な話をするのは勘弁してくれ。
23(1): 名無しさん@お腹いっぱい。 02/02/16 21:03 ID:??? AAS
わかんね。
24: 名無しさん@お腹いっぱい。 02/02/16 21:13 ID:7dTs20wP(1) AAS
>>1さん、勉強になります!
25: 名無しさん@お腹いっぱい。 02/02/16 21:13 ID:??? AAS
>>23
理解する必要なし。バカにされるっす。
26: あぼーん [あぼーん] AAS
あぼーん
27: ” [!] 02/02/17 12:11 ID:??? AAS
姫ハケーン!!!ハァハァw
上下前次1-新書関写板覧索設栞歴
あと 204 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.020s