aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-108/adam-russell/blog.txt1
-rw-r--r--challenge-108/adam-russell/perl/ch-1.pl24
-rw-r--r--challenge-108/adam-russell/perl/ch-2.pl23
3 files changed, 48 insertions, 0 deletions
diff --git a/challenge-108/adam-russell/blog.txt b/challenge-108/adam-russell/blog.txt
index e69de29bb2..db44c9116e 100644
--- a/challenge-108/adam-russell/blog.txt
+++ b/challenge-108/adam-russell/blog.txt
@@ -0,0 +1 @@
+http://www.rabbitfarm.com/cgi-bin/blosxom/perl/2021/04/18
diff --git a/challenge-108/adam-russell/perl/ch-1.pl b/challenge-108/adam-russell/perl/ch-1.pl
index e69de29bb2..845cf74c19 100644
--- a/challenge-108/adam-russell/perl/ch-1.pl
+++ b/challenge-108/adam-russell/perl/ch-1.pl
@@ -0,0 +1,24 @@
+use strict;
+use warnings;
+##
+# Write a script to declare a variable or constant and print its location in memory.
+##
+use Devel::Peek;
+use Capture::Tiny q/capture_stderr/;
+use constant A => "test";
+my $a = 1;
+my $address;
+my $stderr = capture_stderr {
+ Dump(A)
+};
+$stderr =~ m/at\s(0x.*\n).*/;
+$address = $1;
+chomp($address);
+print $address . "\n";
+$stderr = capture_stderr {
+ Dump($a)
+};
+$stderr =~ m/at\s(0x.*\n).*/;
+$address = $1;
+chomp($address);
+print $address . "\n";
diff --git a/challenge-108/adam-russell/perl/ch-2.pl b/challenge-108/adam-russell/perl/ch-2.pl
index e69de29bb2..f27c3658eb 100644
--- a/challenge-108/adam-russell/perl/ch-2.pl
+++ b/challenge-108/adam-russell/perl/ch-2.pl
@@ -0,0 +1,23 @@
+use strict;
+use warnings;
+##
+# Write a script to display the first 10 Bell Numbers.
+##
+sub bell{
+ my($n) = @_;
+ my @bell_numbers = ([]);
+ $bell_numbers[0]->[0] = 1;
+ for (my $i=1; $i<=$n; $i++) {
+ $bell_numbers[$i]->[0] = $bell_numbers[$i-1]->[$i-1];
+ for (my $j=1; $j<=$i; $j++){
+ $bell_numbers[$i]->[$j] = $bell_numbers[$i-1]->[$j-1] + $bell_numbers[$i]->[$j-1];
+ }
+ }
+ return $bell_numbers[$n]->[0];
+}
+
+MINA:{
+ for my $b (0 .. 9){
+ print "B_$b: " . bell($b) . "\n";
+ }
+}