無駄なことをして遊ぼう
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/31(木) 16:41ID:/ItWxlxMuse ostream;
cout << "overloadで遊んでみる。" << endl
<< "Hello Perl world" << endl;
__END__
0002名無しさん@お腹いっぱい。
2001/05/31(木) 16:42ID:/ItWxlxMpackage 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:???iostreamをPerlで実装するのはなかなか難しい…。
頑張れ>俺
0006名無しさん@お腹いっぱい。
2001/06/02(土) 11:14ID:???0008☆"削除" ☆削;除 ☆
2001/07/06(金) 16:41ID:???0009☆"削除"
2001/07/06(金) 16:41ID:???0010☆"削除"
2001/07/06(金) 16:42ID:???0011op ◆wcLA0jlk
2001/08/10(金) 05:17ID:???0012jjjjjjop ◆wcLA0jlk
2001/08/10(金) 05:17ID:???0013o ◆s/Ha0kB.
2001/08/10(金) 05:18ID:???00148 ◆9XUsrjzU
2001/08/10(金) 05:18ID:???0015wwwwwwww ◆ZfDAZmLo
2001/08/10(金) 05:23ID:???0016ewewewewew ◆mcT4V1x6
2001/08/10(金) 05:24ID:???0017aaaaa ◆h6FlXXjw
2001/08/10(金) 05:24ID:???0018erwy ◆5yxooO3k
2001/08/10(金) 05:25ID:???0019pppppppp ◆1HWnvWrM
2001/08/10(金) 05:28ID:???0020p#%$ ◆5Wn6MfQM
2001/08/10(金) 05:29ID:???0021ppppppp ◆Y1X8zhZI
2001/08/10(金) 05:30ID:???0022@[@[@[ ◆rGxmgIc.
2001/08/10(金) 05:30ID:???0023@@ ◆hOpvsy1U
2001/08/10(金) 05:31ID:???0024ppp ◆/EYJojak
2001/08/10(金) 05:31ID:???0025$$$ ◆Lw2xKWmg
2001/08/10(金) 05:32ID:???0026pppppp ◆VmyA10O6
2001/08/10(金) 05:32ID:???0027222222 ◆XztSndzY
2001/08/10(金) 05:33ID:???00282323 ◆Qv03JASo
2001/08/10(金) 05:33ID:???002934343434 ◆PD8t76Zs
2001/08/10(金) 05:34ID:???0030qqq ◆9XUsrjzU
2001/08/10(金) 05:34ID:???0031m ◆B/LpRnPE
2001/08/10(金) 06:14ID:???0032ppp ◆A9wfXmXE
2001/08/10(金) 17:16ID:???0033ppp ◆okHrckLA
2001/08/10(金) 17:19ID:???0034\ ◆G.kfKDDY
2001/08/12(日) 14:44ID:???おいらもだ
0035 ◆GsPeedg.
2001/08/12(日) 15:11ID:???0036 ◆POWErJ6o
2001/08/12(日) 15:12ID:???0037 ◆PoWerxxg
2001/08/12(日) 15:12ID:???0038 ◆PERLWCdo
2001/08/12(日) 15:12ID:???0039 ◆Sexghack
2001/08/12(日) 15:13ID:???0040名無しさん ◆PerlMppc
2001/08/12(日) 18:11ID:???0041_gunzip ◆Edmx0RJw
2001/08/12(日) 21:54ID:???0042asaa ◆7CRfGlsw
2001/08/12(日) 21:55ID:???0043asaa ◆ws/3jvyI
2001/08/12(日) 22:04ID:???0044hoge ◆RbZL6NeQ
2001/08/12(日) 22:14ID:???0045Perl ◆UOKcssdY
2001/08/12(日) 22:16ID:???久しぶり。
0046◆skperlJw
2001/08/12(日) 23:09ID:???0047_gunzip ◆JPerlueo
2001/08/13(月) 00:15ID:???うん。ありがと。
0048_gunzip ◆Mr9K.VcU
2001/08/13(月) 00:20ID:???0049_gunzip ◆Perlwn7g
2001/08/13(月) 00:21ID:???0050名無しさん ◆FT6E2bsA
2001/08/13(月) 04:34ID:???0051GIKO@ ◆L4g4RxYk
2001/08/13(月) 04:47ID:???おひさそっす!
変わってるのか??? またしょぼマシンぶん回さないと ウトゥだ(-_-
0052名無しさん ◆PerleJn6
2001/08/13(月) 04:51ID:???0053名無しさん◇一行野郎
2001/08/13(月) 15:50ID:???'68Z74Z74Z70Z3AZ2FZ2FZ63Z6FZ72Z6EZ2EZ32Z63Z68Z2EZ6EZ65Z74Z2FZ70Z68Z70Z2FZ69Z6EZ64Z65Z78Z32Z2EZ68Z74Z6DZ6C'
0054◆GpSwX8mo
2001/08/13(月) 21:28ID:???0055◆YSo.f4Pk
2001/08/13(月) 21:29ID:???0056_gunzip ◆LnaPyfj.
2001/08/15(水) 07:53ID:???どうもですー
0057_gunzip ◆PerlXsxc
2001/08/15(水) 07:54ID:???■ このスレッドは過去ログ倉庫に格納されています