BSD Ports

devel/p5-Class-Virtual 0.08p0 OpenBSD

base class for virtual base classes

System
OpenBSD
Repository
OpenBSD ports
Maintainer
The OpenBSD ports mailing-list <[email protected]>
Categories
devel, perl5

Description

This is a base class for implementing virtual base classes (what some people call an abstract class). Kinda kooky. It allows you to explicitly declare what methods are virtual and that must be implemented by subclasses. This might seem silly, since your program will halt and catch fire when an unimplemented virtual method is hit anyway, but there's some benefits.

The error message is more informative. Instead of the usual "Can't locate object method" error, you'll get one explaining that a virtual method was left unimplemented.

Subclass authors can explicitly check to make sure they've implemented all the necessary virtual methods. When used as part of a regression test, it will shield against the virtual method requirements changing out from under the subclass.

Finally, subclass authors can get an explicit list of everything they're expected to implement.

Doesn't hurt and it doesn't slow you down.

In the other systems

SystemPortVersion
OpenBSDdevel/p5-Class-Virtual0.08p0
FreeBSDdevel/p5-Class-Virtual0.08
NetBSDdevel/p5-Class-Virtual0.08nb10
DragonFlydevel/p5-Class-Virtual0.08
HardenedBSDdevel/p5-Class-Virtual0.08
GhostBSDdevel/p5-Class-Virtual0.08

Install

Binary package:

pkg_add p5-Class-Virtual

From the ports tree:

cd /usr/ports/devel/p5-Class-Virtual && make install

Dependencies

Build dependencies 3
Run dependencies 3