Language-l33t
view release on metacpan or search on metacpan
lib/Language/l33t/Operators.pm view on Meta::CPAN
$self->set_socket( $sock );
}
else {
warn "h0s7 5uXz0r5! c4N'7 c0Nn3<7 101010101 l4m3R !!!\n";
}
}
$self->_incr_op_ptr;
return 1;
}
sub _fwd {
my $self = shift;
my $direction = shift || 1;
$self->_incr_op_ptr;
$self->_incr_mem_ptr( $direction * ( 1 + $self->_current_op ) );
$self->_incr_op_ptr;
return 1;
}
sub _bak { return $_[0]->_fwd( -1 ); }
sub _wrt($self) {
if ( my $io = $self->socket || $self->stdout ) {
no warnings qw/ uninitialized /;
print {$io} chr $self->_get_current_mem;
}
else {
print chr $self->_get_current_mem;
}
$self->_incr_op_ptr;
return 1;
}
sub _rd($self) {
my $chr;
if ( my $io = $self->socket || $self->stdin ) {
read $io, $chr, 1;
}
else {
read STDIN, $chr, 1;
}
$self->_set_current_mem( ord $chr );
$self->_incr_op_ptr;
return 1;
}
sub _if($self) {
if ( $self->_get_current_mem ) {
$self->_nop;
}
else {
my $nest_level = 0;
my $max_iterations = $self->memory_size;
SCAN:
while (1) {
$self->_incr_op_ptr;
$max_iterations--;
$nest_level++ and redo if $self->_current_op == $IF;
if ( $self->_current_op == $EIF ) {
if ( $nest_level ) {
$nest_level--;
}
else {
break SCAN;
}
}
croak "dud3, wh3r3's my EIF?" unless $max_iterations;
}
}
return 1;
}
sub _eif($self) {
if ( ! $self->_get_current_mem ) {
$self->_nop;
}
else {
$self->_incr_op_ptr( -1 ) until $self->_current_op == 3;
};
return 1;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Language::l33t::Operators - Implementation of the l33t language operators
=head1 VERSION
version 1.1.0
=head1 AUTHOR
Yanick Champoux <yanick@cpan.org>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2026, 2008 by Yanick Champoux.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
( run in 0.663 second using v1.01-cache-2.11-cpan-71847e10f99 )