summaryrefslogtreecommitdiff
path: root/new-demo
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2016-04-13 14:21:41 +1200
committerTom Ryder <tom@sanctum.geek.nz>2016-04-13 14:21:41 +1200
commitcebc43339efa6e1ee7f016e3d53aba821ab301f5 (patch)
tree44d4698cf2a0746470798943808b7dfdf466564c /new-demo
downloadperlobj-demo-cebc43339efa6e1ee7f016e3d53aba821ab301f5.tar.gz
perlobj-demo-cebc43339efa6e1ee7f016e3d53aba821ab301f5.zip
First commit
Just demonstrating Perl's oddish object-oriented paradigm to a friend of mine
Diffstat (limited to 'new-demo')
-rw-r--r--new-demo40
1 files changed, 40 insertions, 0 deletions
diff --git a/new-demo b/new-demo
new file mode 100644
index 0000000..57e5e8b
--- /dev/null
+++ b/new-demo
@@ -0,0 +1,40 @@
+#!/usr/bin/env perl
+
+# Class for the object
+package RPG::Wizard;
+use strict;
+use warnings;
+use utf8;
+use 5.010;
+use Carp;
+our $VERSION = 0.1;
+
+sub new {
+ my ($class) = @_;
+ return bless {}, $class;
+}
+
+sub zap {
+ my ($self) = @_;
+ say 'Zap!' or croak;
+ return;
+}
+1;
+
+# Demonstration of PACKAGE::new()
+package Sanctum::New::Demo; ## no critic (ProhibitMultiplePackages)
+use strict;
+use warnings;
+use utf8;
+use 5.010;
+use Data::Printer; ## no critic (ProhibitDebuggingModules)
+our $VERSION = 0.1; ## no critic (ProhibitReusedNames)
+
+# Make a wizard object
+my $wizard = RPG::Wizard->new();
+
+# Print the object
+p $wizard;
+
+# Zap!
+$wizard->zap();