トップページphp
108コメント25KB

無駄なことをして遊ぼう

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/31(木) 16:41ID:/ItWxlxM
#!/usr/bin/perl
use ostream;

cout   << "overloadで遊んでみる。" << endl
    << "Hello Perl world" << endl;

__END__
0002名無しさん@お腹いっぱい。2001/05/31(木) 16:42ID:/ItWxlxM
# ostream.pm
package ostream;
use base Exporter;
use Carp;
use strict;

use overload
'<<' => \&print;

our @EXPORT = qw(cout endl);
use constant cout => bless {};
use constant endl => "\n";

sub print{
my $self = shift;
my $arg = shift;
shift and croak "syntax error";
CORE::print($arg);
return $self;
}
__END__
0003名無しさん@お腹いっぱい。2001/05/31(木) 20:58ID:???
#ありゃ…ウケなかったか。
#まあ良いや一人で遊ぼう。
package IO::Stream;
use Carp;
use base 'Exporter';
@EXPORT = qw(endl $cout $cin setw);

use strict;
use overload
'<<' => \&output,
'>>' => \&input,
'""' => sub { ref $_[0] || $_[0] },
fallback=> 1,
;

use vars qw/$cout $cin/;
use constant endl => "\n";
$cout = IO::Stream->cout();
$cin = IO::Stream->cin();

sub new { return bless { type => shift }, ref $_[0] || $_[0]; }
sub cin { return bless { type => 'istream' }, ref $_[0] || $_[0]; }
sub cout{ return bless { type => 'ostream' }, ref $_[0] || $_[0]; }

sub input{
my $self = shift;
($_[1] or index($self->{type}, 'i'))
and croak "syntax error";

if(ref $_[0]){
$self->{bufsize} = ${ shift() };
}else{
if($self->{bufsize}){
$_[0] = substr scalar(<STDIN>), 0, $self->{bufsize};
}else{
$_[0] = <STDIN>;
}
}
return $self;
}
sub setw{
my $len = shift;
return \$len;
}

sub output{
my $self = shift;
my $arg = shift;
($_[0] or index($self->{type}, 'o'))
and croak "syntax error";
print($arg);
return $self;
}

1;
# new周辺が見苦しいが
# 纏めようとすると何故かoverloadがうまく働かないことがあるんだよなぁ…。
# 何でだろ。
0004名無しさん@お腹いっぱい。2001/05/31(木) 21:09ID:???
どうも挙動がおかしい。
>>3でcoutを変数にしたのは、
>>2のコードで
#!/usr/bin/perl
use ostream;
exit;
cout << "test " << endl;
__END__
とやると妙なことになってしまう為。
変数だと結果はマトモだ。
0005名無しさん@お腹いっぱい。2001/06/01(金) 22:11ID:???
C++の本を買ってきた。
iostreamをPerlで実装するのはなかなか難しい…。
頑張れ>俺
0006名無しさん@お腹いっぱい。2001/06/02(土) 11:14ID:???
マニピュレータの実装が難しい…。
0007 2001/06/27(水) 23:55ID:???
難しいことやってるねぇ。
意味不明です・・・私には・・・
0008☆"削除" ☆削;除 ☆2001/07/06(金) 16:41ID:???
★削除 ★ジケーン
0009☆"削除"2001/07/06(金) 16:41ID:???
ジケーン
0010☆"削除"2001/07/06(金) 16:42ID:???
ジケーン
0011op ◆wcLA0jlk2001/08/10(金) 05:17ID:???
ooooooooo
0012jjjjjjop ◆wcLA0jlk2001/08/10(金) 05:17ID:???
545
0013o ◆s/Ha0kB.2001/08/10(金) 05:18ID:???
a
00148 ◆9XUsrjzU2001/08/10(金) 05:18ID:???
ddd
0015wwwwwwww ◆ZfDAZmLo2001/08/10(金) 05:23ID:???
hrthrthrthrthrthrthrthrthrthrthrthrthrt
0016ewewewewew ◆mcT4V1x62001/08/10(金) 05:24ID:???
[[[[[
0017aaaaa ◆h6FlXXjw2001/08/10(金) 05:24ID:???
gr
0018erwy ◆5yxooO3k2001/08/10(金) 05:25ID:???
ppppppppppp
0019pppppppp ◆1HWnvWrM2001/08/10(金) 05:28ID:???
hhhhhhhhhh
0020p#%$ ◆5Wn6MfQM2001/08/10(金) 05:29ID:???
rthjhjrthjrthjrthjrthjrthjrthjrt
0021ppppppp ◆Y1X8zhZI2001/08/10(金) 05:30ID:???
fdsdfsdfsdfs
0022@[@[@[ ◆rGxmgIc.2001/08/10(金) 05:30ID:???
[i@i@[i@[
0023@@ ◆hOpvsy1U2001/08/10(金) 05:31ID:???
sdsds
0024ppp ◆/EYJojak2001/08/10(金) 05:31ID:???
dsdfsds
0025$$$ ◆Lw2xKWmg2001/08/10(金) 05:32ID:???
ppppp
0026pppppp ◆VmyA10O62001/08/10(金) 05:32ID:???
aaa
0027222222 ◆XztSndzY2001/08/10(金) 05:33ID:???
fadsadfsadfsadfs
00282323 ◆Qv03JASo2001/08/10(金) 05:33ID:???
sddsdsdsdsdsds
002934343434 ◆PD8t76Zs2001/08/10(金) 05:34ID:???
uil;ilu;ilu;ilu;ilu;
0030qqq ◆9XUsrjzU2001/08/10(金) 05:34ID:???
p@
0031m ◆B/LpRnPE2001/08/10(金) 06:14ID:???
sa
0032ppp ◆A9wfXmXE2001/08/10(金) 17:16ID:???
asssssssss
0033ppp ◆okHrckLA2001/08/10(金) 17:19ID:???
tyjety
0034\ ◆G.kfKDDY2001/08/12(日) 14:44ID:???
すっかり練習場と化している・・・

おいらもだ
0035 ◆GsPeedg.2001/08/12(日) 15:11ID:???
  
0036 ◆POWErJ6o2001/08/12(日) 15:12ID:???
        
0037 ◆PoWerxxg2001/08/12(日) 15:12ID:???
             
0038 ◆PERLWCdo2001/08/12(日) 15:12ID:???
            
0039 ◆Sexghack2001/08/12(日) 15:13ID:???
                  
0040名無しさん ◆PerlMppc2001/08/12(日) 18:11ID:???
0041_gunzip ◆Edmx0RJw2001/08/12(日) 21:54ID:???
新機能か....。
0042asaa ◆7CRfGlsw2001/08/12(日) 21:55ID:???
efwefwefwefwefwefwefwefwefw
0043asaa ◆ws/3jvyI2001/08/12(日) 22:04ID:???
efwefwefwefwefwefwefwefwefwefw
0044hoge ◆RbZL6NeQ2001/08/12(日) 22:14ID:???
hoge#hoge
0045Perl ◆UOKcssdY2001/08/12(日) 22:16ID:???
>>41
久しぶり。
0046◆skperlJw2001/08/12(日) 23:09ID:???
とりあえずパス解析成功風?
0047_gunzip ◆JPerlueo2001/08/13(月) 00:15ID:???
>>45
うん。ありがと。
0048_gunzip ◆Mr9K.VcU2001/08/13(月) 00:20ID:???
ふぅ。
0049_gunzip ◆Perlwn7g2001/08/13(月) 00:21ID:???
間違えた。
0050名無しさん ◆FT6E2bsA2001/08/13(月) 04:34ID:???
テスト
0051GIKO@ ◆L4g4RxYk2001/08/13(月) 04:47ID:???
>>47
おひさそっす!

変わってるのか???  またしょぼマシンぶん回さないと ウトゥだ(-_-
0052名無しさん ◆PerleJn62001/08/13(月) 04:51ID:???
テストっ
0053名無しさん◇一行野郎2001/08/13(月) 15:50ID:???
print chr hex for split chr++$_**++$_*++$_*++$_*--$_-++$_*++$_-++$_*$_+$_+$_/$_,
'68Z74Z74Z70Z3AZ2FZ2FZ63Z6FZ72Z6EZ2EZ32Z63Z68Z2EZ6EZ65Z74Z2FZ70Z68Z70Z2FZ69Z6EZ64Z65Z78Z32Z2EZ68Z74Z6DZ6C'
0054◆GpSwX8mo2001/08/13(月) 21:28ID:???
テスト
0055◆YSo.f4Pk2001/08/13(月) 21:29ID:???
もいっちょ
0056_gunzip ◆LnaPyfj.2001/08/15(水) 07:53ID:???
>>51
どうもですー
0057_gunzip ◆PerlXsxc2001/08/15(水) 07:54ID:???
...
■ このスレッドは過去ログ倉庫に格納されています