トップページ⇒tech
1001コメント334KB

Perlについての質問箱 18箱目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/07/20(水) 05:15:36
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc8.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。

http://www.perl.org/get.html
● 2005/03/17現在の最新版: 5.8.7
● 2005/03/17現在の開発版: 5.9.2
06556522005/09/04(日) 20:14:11
>>654
print "orz " x 100, "\n";
0656デフォルトの名無しさん2005/09/04(日) 21:01:07
なんで03dじゃないんだ?
0657デフォルトの名無しさん2005/09/04(日) 21:02:53
>>656
質問あんま読んで無かっただけじゃないかと…
0658デフォルトの名無しさん2005/09/04(日) 21:23:27
サーバーから転送量激しいから何とかしてくれってメールきて画像系CGIの転送量がやばいらしいから該当CGIにトラフィック制御を付けようと思ってます。
そこで次のサブルーチンを作成してみました
[ $Trafic_Timeout ]秒間に [ $Trafic_min_limit ] バイト転送したら転送量エラーと表示したいとして
&TraficPlus(画像サイズ);
って感じで呼び出したいと思っています。
全くスマートなプログラムではありませんが、これでいけると思ってやった見て、何度か改良しましたがうまくいきません。
どなたか改良又は知恵をかしていただけませんか?宜しくお願いします。

sub TracficPlus{
$plus = $_[0];
my $size;
&filelock('tr.lock');
$Trafic_min_limit = 202400;
$Trafic_Timeout = 60;
my $nowtime=time;
open(IN,"time.trafick");$mtime = <IN>; close(IN);
open(IN,"now.trafick");$total = <IN>;close(IN);
$time = $nowtime - $mtime ;
if($time > $Trafic_Timeout){
$total = 0;
open(IN,">time.trafick");print IN $nowtime; close(IN);
}
$total += $plus ;
open(IN,">now.trafick");print IN $total;close(IN);
open(IN,"total.trafick");$ttt = <IN>;close(IN);
$ttt += $plus;
open(IN,">total.trafick");print IN $ttt;close(IN);
&fileunlock('tr.lock');
if($total > $Trafic_min_limit){&Error($Limit);}
return $size;
}
0659デフォルトの名無しさん2005/09/04(日) 22:07:47
forkって失敗したら何を返してくれるの?
0660デフォルトの名無しさん2005/09/04(日) 22:09:01
spoon
0661デフォルトの名無しさん2005/09/04(日) 22:13:42
>>660
ふざけてないで教えてくれよ!!
マニュアル見んのめんどくせえんだよ!!!
0662デフォルトの名無しさん2005/09/04(日) 22:15:27
>>658

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc8.2ch.net/php/ )
0663デフォルトの名無しさん2005/09/04(日) 22:19:51
>>662
了解です
0664デフォルトの名無しさん2005/09/04(日) 22:39:11
>>661
> マニュアル見んのめんどくせえんだよ!!!

英語のマニュアル読めないんだよ!と正直に言えば
教えてもらえるかもしれないのに
0665デフォルトの名無しさん2005/09/04(日) 23:45:11
解決方法

つ while(1){}
0666デフォルトの名無しさん2005/09/04(日) 23:59:59
fork while(1);
0667デフォルトの名無しさん2005/09/05(月) 00:24:13
while (1) {〜}
と
for (;;) {〜}
っておんなじだよね?
0668デフォルトの名無しさん2005/09/05(月) 00:25:04
違うよ
0669デフォルトの名無しさん2005/09/05(月) 01:09:38
>>667-668
おんなじだよ。

> cat test.pl
while(1){1}
for(;;){1}
> perl -MO=Deparse test.pl
while (1) {
  '???';
}
while (1) {
  '???';
}
test.pl syntax OK
0670デフォルトの名無しさん2005/09/05(月) 01:13:13
>>669
とすれば、最初から while (1) {} と書いたほうが良いのかな
0671デフォルトの名無しさん2005/09/05(月) 07:07:39
>>669
意味は同じだが、while(1) の方がより自然言語に近いからベター。
for(;;) って書く香具師、キライ。
0672デフォルトの名無しさん2005/09/05(月) 07:35:32
つうかfor(;;)は顔文字に見えて仕方が無い
0673デフォルトの名無しさん2005/09/05(月) 08:43:44
潤いがあっていいじゃないか。
06746672005/09/05(月) 08:44:10
>669
ありがと。普段はwhile(1)って書くけど、web上で見つけたコードでfor(;;)を使ってるコードがあって気になってた。
つーか、
perl -MO=Deparse
こういうやり方あったのか。知らなかったから勉強になった。thx.
0675デフォルトの名無しさん2005/09/05(月) 11:21:18
> perl -MO=Deparse
おもすれーこれ
0676デフォルトの名無しさん2005/09/05(月) 14:19:19
最近のPerlのコーディング規約はJavaに近づいているのでしょうか?
0677デフォルトの名無しさん2005/09/05(月) 15:43:55
>667
while(1)が正解さ。
forはね、何かをカウントする時に使う。って使い分けが読みやすくす秘訣。
0678デフォルトの名無しさん2005/09/05(月) 15:46:47
Cはwhile(1)だとWarningがでるからその習慣でfor(;;)って書く人がいる
0679デフォルトの名無しさん2005/09/05(月) 16:33:04
1っていう謎の定数が出現するのが嫌な俺はfor(;;)派なわけだが。
0680デフォルトの名無しさん2005/09/05(月) 16:33:31
>>678
それは、よっぽどのヘタレコンパイラ。
今時のちゃんとしたコンパイラなら、Warningなど出ない。
0681デフォルトの名無しさん2005/09/05(月) 16:48:40
#define forever while(1) って書く香具師がいるけど、どう思う?
(#define forever for(;;) でも同じ)
ちなみに俺は書かない。
0682デフォルトの名無しさん2005/09/05(月) 16:56:23
>>681
俺も書かない。単なるアホだと思う。
でもそれ、Perlがやってることに非常に似てる。

「ここで "is" って書く代わりに、"are" って書けたら自然で良くね?」
「いいねぇ、追加しちゃえ。」
「ジャーン!Perlは更に自由度を手に入れました!どっちも同じ意味ですが。」
0683デフォルトの名無しさん2005/09/05(月) 16:57:09
Perlについての質問箱です。
Perlについての質問箱です。
Perlについての質問箱です。
0684デフォルトの名無しさん2005/09/05(月) 18:30:54
スコープの大カッコをどう書くか、くらいどっちでもいい話だ
0685デフォルトの名無しさん2005/09/05(月) 19:04:49
>>682
しかし、Perlほど英文ぽさを意識しておきながら
そこで「複数のブツ」にもisしか使えないとなると、
それはそれで思想的な一貫性に欠ける気もするし、難しいところだなー。
0686デフォルトの名無しさん2005/09/05(月) 20:28:08
@ARE
0687デフォルトの名無しさん2005/09/05(月) 22:15:34
for派とwhile派の宗教戦争がうざいので、
プリプロセッサのマクロで気分で変更してます><
0688デフォルトの名無しさん2005/09/05(月) 22:18:27
>>687
宗教戦争に負けないような、強い自己を持ちましょう。
0689デフォルトの名無しさん2005/09/05(月) 22:23:00
>>688
至言だね。
0690デフォルトの名無しさん2005/09/05(月) 22:24:41
前から思ってたんだけど、
print($a,$b,$c);
と
print $a,$b,$c;
って何が違うの?
0691デフォルトの名無しさん2005/09/05(月) 22:35:14
open TEST,'+<test.c' or die("error");
test.cは読み書き可能な状態なのにundefineが返してくるのは何で?
0692デフォルトの名無しさん2005/09/05(月) 22:38:30
691だけど自己解決しました
0693デフォルトの名無しさん2005/09/05(月) 22:53:09
そこでgotoの出番ですよ。
0694デフォルトの名無しさん2005/09/05(月) 23:12:00
open関数によって作成されたファイルのパーティションってどうなってるの?
0695デフォルトの名無しさん2005/09/05(月) 23:13:51
>>694
もう一度自分の質問を点検せよ。
0696デフォルトの名無しさん2005/09/05(月) 23:17:04
>>695
ミス

open関数によって作成されたファイルの権限ってどうなってるの?
0697デフォルトの名無しさん2005/09/05(月) 23:25:22
でふぉるとだと644とかその辺じゃないの?
0698 ◆TUuAKJVzIM 2005/09/05(月) 23:53:36
DBIを使わずにPg.pmを使う利点とかありますか?
PostgreSQLを使用するスクリプトでPg.pmが使われているのを
DBIを使うように書き換えていきたいんですが。
0699デフォルトの名無しさん2005/09/06(火) 00:17:07
>>696
man umask
0700デフォルトの名無しさん2005/09/06(火) 00:30:48
>>698
そのスクリプトがDBD::Pg を直接叩いてるなら、狙ったのは速度でしょうね。

スクリプト --> DBI(Perl) --> DBD::Pg(Perl, XS) --> Postgres
スクリプト --> DBD::Pg(Perl, XS) --> Postgres

DBIで書き換えるのは賛成です。
メソッド名がDBIと揃ってるんじゃないかと思うので、そんなに労力要らないハズです。
0701デフォルトの名無しさん2005/09/06(火) 01:18:11
お前らかわいい
0702デフォルトの名無しさん2005/09/06(火) 01:28:13
>>700
おい。DBD::PgじゃなくてPgだろ。
0703デフォルトの名無しさん2005/09/06(火) 02:50:39
perlのソース読めば分かります.
0704619-620NGNG
>>622
>>627
ありがとうございます。
やっと解決しました。

>>620に載せたスクリプトには問題はありませんでした。
ただ、Cronの実行の仕方に問題があったのでした。

【失敗】
10 * * * * /home/user/test.pl

【成功】
10 * * * * /home/user/test.pl < /dev/zero > /dev/null 2>&1
最後の/dev/null・・・の部分はログを残したい場合は、そのファイルを指定します。

Cronのあるバージョンからこのように明示しなくてはならなくなったようです。

このページを参考にしました。
http://www.turbolinux.co.jp/support/document/knowledge/639.html

遅くなりましたが解決しました。
ありがとうございました。
0705デフォルトの名無しさん2005/09/06(火) 18:00:26
解決後にその方法を書くのは、お礼を言うこと以上に素晴らしい。
0706デフォルトの名無しさん2005/09/06(火) 19:44:21
binmode
ってやって意味あるの?
やらないのと何が違うのか具体的に教えて。
0707デフォルトの名無しさん2005/09/06(火) 19:46:55
>>706
Windows(ActivePerl)だと問題が発生する
Cygwin/UNIXじゃ大丈夫だけどな

Windowsはテキストファイルとバイナリファイルを区別してるから
バイナリファイルを読み込むときはbinmodeしないとファイルを正しく読み込めない

とラクダ本に書いてあります
ラクダ本ぐらい買えよ
0708デフォルトの名無しさん2005/09/06(火) 20:26:54
ご質問というかご相談を。

1行でデータが羅列されているテキストファイルに改行をいれたいのです。
例えば X Y Z X Y Z X Y Z というファイルを
     X Y Z
     X Y Z
     X Y Z
にしたいのです。、一応動くのですが、なんとなく遠回りしてる気がして・・・・
データ数も多いので、処理速度を改善できないかとご相談を。
もしよろしければ、間違った文法のご指摘等もよろしくお願いします。

open(FILE, "$file") or die "ERROR:そのようなファイルはありません。\n";
while(<FILE>){
@gyo = $_;
}
$all = @gyo[0];
$outfile = "out.txt";
open(OUTPUT, ">>$outfile");
$count = 1;
while($count < 33697){
$tests = substr($all,0,85);
$testss = $tests . "\n";
$all =~ s/$tests//g;
push @alls ,$testss;
$count = $count + 1;
}
foreach(@alls){
print OUTPUT "$_";
}
close(OUTPUT);
close(FILE);
0709デフォルトの名無しさん2005/09/06(火) 20:34:28
33697とか85の意味がわからんが
@gyoにファイルのデータをためこむとメモリ使用量が増大して実行速度は遅くなるだろうね
普通はbufferとか変数つくって1024byteごと読むとかがセオリーだけど

その処理なら
一行よんで一行(分割した行)を書き込むという処理がベストかと
0710デフォルトの名無しさん2005/09/06(火) 20:40:00
>>706
標準で有効になっているエンコード変換(の一種)を抑止する指示。
この変換は、OS標準のテキスト形式をPerlが想定するテキストストリーム形式に変換する。
OSの標準形式がPerlが想定するテキストストリーム形式と等しい場合は、何も起きない。

極端な例.
perl -e "use encoding 'euc-jp';while(<STDIN>) {print}" <in.euc >out.euc
perl -e "use encoding 'euc-jp';binmode(STDOUT);while(<STDIN>) {print}" <in.euc >out.utf8
perl -e "use encoding 'cp932';while(<STDIN>) {print}" <in.sjis >out.sjis
perl -e "use encoding 'cp932';binmode(STDOUT);while(<STDIN>) {print}" <in.sjis >out.utf8
これは、テキストモードだと文字コード自体の変換を伴う例。
binmode時は、文字コードの変換も止まっている事がわかると思う。
警告が邪魔なら、printの前にuse bytes; 入れれ。
07117082005/09/06(火) 21:11:53
>>709
あ、元のファイルは1行しかないんです。
85文字目までが1行の単位でそれが33697回繰り返してある1行のファイルなんです。

最初のファイルから1行読むってのは85文字目まで読むってことですか?
そうすると次は85〜170まで次は〜って感じですか?
0712デフォルトの名無しさん2005/09/06(火) 21:14:26
そういう感じ
Whileじゃなくてreadで85byteづつ読んだほうがいい
0713デフォルトの名無しさん2005/09/06(火) 21:32:29
> 708
while(<FILE>){ chomp; print OUTPUT $line,"\n" while ( $line = substr( $_, 0, 85 , q[] ) ) }
0714デフォルトの名無しさん2005/09/06(火) 21:38:58
>>708
約 3MB のファイルか。
メモリ利用の効率を無視できるなら、それくらいの容量なら、
今のままの一気に読み込む富豪的アルゴリズムでもいいと思うけどね。
(目的と、ファイルサイズがどれくらいになりうるかで
決めるといいかも。)

フィールド長(85バイト)が決まっているなら、
read で書いても簡単に書けると思うし、
不定でもバッファを用意すればいいね。

>>708のコードは次のように簡潔に書けるから、参考になりそうならどうぞ。
メモリ効率等は改善してないが、可変フィールド長には対応。
open(IN, $file);
my @data = split(/\s+/, <IN>);
close(IN);

open(OUT, ">>$outfile");
for (my $i=0; $i<@data; $i+=3) {
  print OUT "$data[$i] $data[$i+1] $data[$i+2]\n";
}
close(OUT);
0715デフォルトの名無しさん2005/09/06(火) 22:26:01
714 のコードを 671 みたいな for(;;) 嫌いが書くと
while ( @data ){
printf ("%s %s %s\n" , ( shift @data, shift @data, shift @data))
}
になるのかな?

for(;;) というよりも添字がごちゃごちゃしてて嫌い。
0716デフォルトの名無しさん2005/09/06(火) 22:29:39
>>712,713,714
レスありがとうございます。

大体3MB弱のファイルなのですが、これが400ファイルほどあって。。。
出来るだけ処理速度を上げたいと思いまして。。。
改善の余地としては
@gyoのところで全部読まず1行づつreadで読み書きするようにするとメモリ使用量が少なくてすむ!
という感じですね。

readというものを知らなかったのでこれを使って少し改善してみたいと思います。

>>713さんのだと1行で出来ちゃうのですか?
私にはどんな処理を行っているかすぐに出てきませんOTZ
勉強していろいろ試してみたいと思います。

私の最初の記述でも>>714さんの位短く書けてしまうのですね。
参考にさせていただきますφ
0717デフォルトの名無しさん2005/09/06(火) 22:36:03
>716
こういう場合、ディスクのIOの方がネックになるのでreadでチマチマ読むより一気にメモリに読み込んで処理した方が速いんじゃなかろうか?
この程度だったらたいした差にはならないだろうけど。
0718デフォルトの名無しさん2005/09/06(火) 22:43:43
sysreadじゃなくてreadならバッファ入るからそれほど
気にしなくていいんじゃないかと。
0719デフォルトの名無しさん2005/09/06(火) 22:45:12
超富豪的解法。
perl -e 'local $/ = \85; print map "$_\n", <>' file1 file2 file3 ... > splited.log
0720デフォルトの名無しさん2005/09/06(火) 23:00:40
>>716
単純に処理速度を上げたいだけなら、717も書いているが
ファイルを一気に読み込むコードのままでもOK。

さらに処理速度を上げたいなら、
例えば ファイルを 100 個ずつ個別に処理し、
最後に結合するなども。
(要するに並列処理を。)

>>719
ワロタ
これで入力ファイルを1つずつにして、シェルスクリプトでファイルを1つずつ渡してやれば
十分現実的だね。

for i in file*.log; do perl -e 〜 $i >> splited.log; done
0721デフォルトの名無しさん2005/09/06(火) 23:00:42
>719 ソレイイ!!
いや、マジで。
$/ に\数字使うって知らなかったよ。
map でなく、普通に while 使って
perl -ne 'BEGIN{$/ = \85}; print $_,"\n"' file1 file2 file3 ... > splited.log
で超富豪からちょっと慎ましく。
07227122005/09/06(火) 23:03:38
「while 使って」っていってるくせに while 使ってないし。
-n オプション付けてるんでwhileループは省略してます
07237222005/09/06(火) 23:17:41
721=722=723
712 と 721 間違えた。
ついでに 3M*400 = 1.2G となるとやっぱりネックはディスクへのアクセス。

out.txt を読み込みファイルと別のディスクにすると速くなるはず。
それと、100個ずつ並列処理なんかさせるとディスクのアクセスが不連続になって逆に遅くなるのでは?
0724デフォルトの名無しさん2005/09/06(火) 23:23:53
質問です

「すれ立てるまでもない質問はここで 第69刷」スレの921,925で質問していた者ですが
こちらのスレが適しているということで来ました。

元々他スレの話題で大変恐縮なのですが、
$str = "0xa4a2";
print &hoge($str);
で画面に"あ"と表示させたい場合に、関数&hoge はunpack を使って実現できるとお聞きしたのですが
どのようにすればうまくいくのでしょうか

元々は
1.文字列「0xa4a2」(EUCの「あ」)
↓???
2.文字列「0x82a0」(SJISの「あ」)
↓pack
3.文字列「あ」
※自分のところには、コード(EUC)の形でしか渡してもらえない

という流れで考えていました。1から3に直接飛べるならそれに越したことはないのですが・・・
0725デフォルトの名無しさん2005/09/06(火) 23:37:18
>>723
読み込みの方に時間がかかるなら、たしかにファイルへのアクセスが不連続
になって遅くなるかも。
もちろん並列の場合のアルゴリズムは>>714に書いたように一気に読み込むものだけど。

どちらにせよ、速度の差は多分、出ても数倍のオーダーだろうね。
素直に直列(?)処理でよさそうだ。

出力ファイルのドライブを分けるのは、効果ありそうだね。
0726ヽ(´ー`)ノ ◆.ogCuANUcE 2005/09/06(火) 23:42:44
>>724
元の質問はコレね?
http://pc8.2ch.net/test/read.cgi/tech/1123220967/921

とりあえずロジックを考える時は、やらなきゃいけない事を分けよう。

1. 16進数文字列 → 通常の文字列
2. EUC-JP → Shift_JIS 変換

use Encode qw/from_to/;

# '0xa4a2' → EUC-JP の「あ」
my $str = '0xa4a2';
$str =~ s/^0x//i;
my $euc_a = pack('H*', $str);

# EUC-JP の「あ」 → Shift_JIS の「あ」
from_to(my $sjis_a = $euc_a, 'EUC-JP', 'Shift_JIS');

print $sjis_a;

これでいいかね。
0727デフォルトの名無しさん2005/09/07(水) 00:04:54
0xを使う手もあるね
$str = pack("n",eval $str);
07287242005/09/07(水) 00:06:12
>>726
できました。ありがとうございます!

需要はないと思いますが、私のミスを整理してみました_| ̄|○
1.pack関数にSJIS「あ」の文字コードを入れてみると、うまく変換された。
2.pack関数にEUC「あ」の文字コードを入れてみると、うまく変換されなかった(実際はコマンドプロンプト上で文字化けしてるだけ)
3.1と2の出来事から、pack関数はSJISしか受け付けてくれないものと勘違い
 ※pack関数の引数に"SJIS"とか"EUC"が必要なかったため、勘違いしてしまいました。実際は文字コード自動判別してくれるんですね。
4.そして泥沼へ・・・

ご迷惑をお掛けして申し訳ありませんでした。
0729デフォルトの名無しさんNGNG
splited ってなぁに?
0730デフォルトの名無しさん2005/09/07(水) 00:10:37
>>728
乙。
結果報告は重要だと思うので、しっかりお礼&報告する
姿勢はよいと思うぞ。
0731デフォルトの名無しさん2005/09/07(水) 00:28:54
だれにも食えもしないお礼なぞいらん。

結果報告だけでいい。
0732デフォルトの名無しさん2005/09/07(水) 01:46:53
>>707
ありがと
ところで、binmodeからテキストモードに戻す場合はどうすればいいの?
0733デフォルトの名無しさん2005/09/07(水) 05:30:01
>>732
binmode(IN, ":crlf")
0734デフォルトの名無しさん2005/09/07(水) 05:37:25
>>715
printf( "%s %s %s\n", splice @data, 0, 3 ) while @data;
じゃね?
0735デフォルトの名無しさん2005/09/07(水) 09:47:41
$hogeというファイルが存在しないのを確認して、
もし存在しなければ$hogeというファイルを作成→終了。
もし存在したなら$hogeに1を足してまた存在を確認、、、、
とえんえん繰り返していくようにするはどうすればいいですか。
0736デフォルトの名無しさん2005/09/07(水) 10:17:32
$hogeにどんな文字列が入ってるのかわからんから
「1を足す」の実際の動作やら何やらは特定できんが、
考え方としては

while (1) {
  if (-e $hoge) { ++$hoge; }
  else { open F, $hoge and last; }
}
0737デフォルトの名無しさん2005/09/07(水) 10:25:36
こんなのもありかな?
while (1) {
  next if -e $hoge++;
  open F, $hoge and last;
}
0738デフォルトの名無しさん2005/09/07(水) 10:29:06
おお、ありがとうございます。
さっそくやってみます。
0739デフォルトの名無しさん2005/09/07(水) 11:08:30
そのプログラムを走らす人が常に一人しかいないのならば
それでも動くけれども、複数同時に走らす場合は、

A: -eでしらべる。なさげ
B: -eでしらべる。なさげ
A: ファイル作成
B: ファイル作成

てなことになりかねないので危険です。

私が書くならsysopenでO_EXCL指定してEEXISTエラーのときだけ
$hoge++してリトライでこんな感じ。

use Fcntl;

my $hoge = 0;

while (!sysopen F, $hoge, O_WRONLY|O_CREAT|O_EXCL) {
$!{EEXIST} or die "sysopen $hoge: $!";
$hoge++;
}

でも一時ファイルですぐ消すんならFile::Tempとか使った方がいい
だろうし、どんどん作られていくなら別にカウンタもった方が効率的
じゃないかと。
0740デフォルトの名無しさん2005/09/07(水) 11:10:06
無限ループで本当にいいのかw

0741デフォルトの名無しさん2005/09/07(水) 11:15:18
質問者がそういってんだからいいんでね―の
0742デフォルトの名無しさん2005/09/07(水) 11:22:46
余計な気を回したり細部を掘り下げたりせずに
とっとと訊かれたことだけ答えたほうがこの場合よさげ。
0743デフォルトの名無しさん2005/09/07(水) 12:16:44
キモの部分が分かりやすければいいでしょう。
0744デフォルトの名無しさん2005/09/07(水) 12:44:36
binbinmode(ORE, "チ○ポ");
0745デフォルトの名無しさん2005/09/07(水) 16:09:11
>>744
die "Can't change mode.";
0746デフォルトの名無しさん2005/09/07(水) 16:33:09
>>744
sourou() if $mi-kosuri-han;
0747デフォルトの名無しさん2005/09/07(水) 16:43:30
print 〇ANKO $aieki;
0748デフォルトの名無しさん2005/09/07(水) 17:36:12
>>747
echo $haxahaxa;
0749デフォルトの名無しさん2005/09/07(水) 18:16:02
print ++$_ foreach @omaira = qw(D Q N);
0750デフォルトの名無しさん2005/09/07(水) 18:33:08
print 119.97.114.111.116.97.40.87;
0751デフォルトの名無しさん2005/09/07(水) 20:38:44
>>749
length q caller getc and print chr ord qw q do q and print chr ord q local and print chr ord qw q uc q and print chr ord q tie gt
0752デフォルトの名無しさん2005/09/07(水) 20:48:40
select('ティッシュ');
0753デフォルトの名無しさん2005/09/07(水) 20:56:42
require "http://pc8.2ch.net/test/read.cgi/db/1057289721/";
0754デフォルトの名無しさん2005/09/07(水) 21:14:46
do __FILE__;

オススメ。
■ このスレッドは過去ログ倉庫に格納されています