Class::Plain – Karma Tabanlı Perl OO için Sınıf Sözdizimi

In: Genel


Class::Plain 2022-09-22’de yayınlandı.

use Class::Plain;

class Point {
  field x;
  field y;

  method new : common {
    my $self = $class->SUPER::new(@_);

    $self->{x} //= 0;
    $self->{y} //= 0;

    return $self;
  }

  method move {
    my ($x, $y) = @_;

    $self->{x} += $x;
    $self->{y} += $y;
  }

  method describe {
    print "A point at ($self->{x}, $self->{y})n";
  }
}

my $point = Point->new(x => 5, y => 10);
$point->describe;
Tam ekran moduna girinTam ekran modundan çık

Miras:

class Point3D : isa(Point) {
  field z;

  method new : common {
    my $self = $class->SUPER::new(@_);

    $self->{z} //= 0;

    return $self;
  }

  method move {
    my ($x, $y, $z) = @_;

    $self->SUPER::move($x, $y);
    $self->{z} += $z;
  }

  method describe {
    print "A point at ($self->{x}, $self->{y}, $self->{z})n";
  }
}
Tam ekran moduna girinTam ekran modundan çık

Perl OO ile çok ilgileniyorum. Şimdi Corinna ve Object::Pad çalışıyorum.

Birkaç zayıf önce, “Bu sınıf sözdizimi, geleneksel Perl karma tabanlı OO modüllerine uygulanabilir. Sözdizimi, mevcut tüm modüllerle kullanılabilir” diye merak ettim.

Birçok OO modülünü hatırladım. Net::FTP, IO::Socket::INET, IO::Socket::IP, LWP::UserAgent, HTTP::Tiny, XML::Simple, Data::Page, CGI, Digest::MD5, Digest: :SHA, Mojolicious, Catalyst, DBIx::Class vb.

Class::Plain – Karma Tabanlı Perl OO için Sınıf Sözdizimi

Bir cevap yazın

Ready to Grow Your Business?

We Serve our Clients’ Best Interests with the Best Marketing Solutions. Find out More

How Can We Help You?

Need to bounce off ideas for an upcoming project or digital campaign? Looking to transform your business with the implementation of full potential digital marketing?

For any career inquiries, please visit our careers page here.
[contact-form-7 404 "Bulunamadı"]