summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bless-demo37
-rw-r--r--new-demo40
2 files changed, 77 insertions, 0 deletions
diff --git a/bless-demo b/bless-demo
new file mode 100644
index 0000000..55f8734
--- /dev/null
+++ b/bless-demo
@@ -0,0 +1,37 @@
+#!/usr/bin/env perl
+
+# Class for the object
+package Sanctum::Bless::Class;
+use strict;
+use warnings;
+use utf8;
+use 5.010;
+our $VERSION = 0.1;
+use Data::Printer; ## no critic (ProhibitDebuggingModules)
+
+sub spit {
+ my ($self) = @_;
+ p $self;
+ return;
+}
+1;
+
+# Demonstration of bless()
+package Sanctum::Bless::Demo; ## no critic (ProhibitMultiplePackages)
+use strict;
+use warnings;
+use utf8;
+use 5.010;
+our $VERSION = 0.1; ## no critic (ProhibitReusedNames)
+
+# Create a new hash reference
+my $hash = { ayy => 'lmao', };
+
+# Bless the hash reference into the Sanctum::Bless::Class. It thereby becomes
+# an *instance* of "Sanctum::Bless:Class", which means it gains the "spit"
+# method defined for it.
+bless $hash, 'Sanctum::Bless::Class';
+bless $hash, 'Sanctum::Bless::Wizard';
+
+# Run the spit() method that's now available on the hashref.
+$hash->spit();
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();