From 8b17faf74310bc46d67617468928ede6fa17c271 Mon Sep 17 00:00:00 2001 From: Ysmael Ebreo Date: Sat, 28 Sep 2019 11:20:28 +0800 Subject: Added Perl5 solution for task#2 --- challenge-027/yet-ebreo/perl5/ch-1.pl | 1 - challenge-027/yet-ebreo/perl5/ch-2.pl | 44 +++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 challenge-027/yet-ebreo/perl5/ch-2.pl diff --git a/challenge-027/yet-ebreo/perl5/ch-1.pl b/challenge-027/yet-ebreo/perl5/ch-1.pl index a8659559fd..de535cfb25 100644 --- a/challenge-027/yet-ebreo/perl5/ch-1.pl +++ b/challenge-027/yet-ebreo/perl5/ch-1.pl @@ -9,7 +9,6 @@ use v5.10; die "Usage:\n\tch-1.pl \n\n" if @ARGV != 8; -# one intersection point my @line1 = ([$ARGV[0],$ARGV[1]],[$ARGV[2],$ARGV[3]]); my @line2 = ([$ARGV[4],$ARGV[5]],[$ARGV[6],$ARGV[7]]); my $y_intercept1 = 0; diff --git a/challenge-027/yet-ebreo/perl5/ch-2.pl b/challenge-027/yet-ebreo/perl5/ch-2.pl new file mode 100644 index 0000000000..963283d8f8 --- /dev/null +++ b/challenge-027/yet-ebreo/perl5/ch-2.pl @@ -0,0 +1,44 @@ +# Write a script that allows you to capture/display historical data. It could be an object or a scalar. For example +# my $x = 10; $x = 20; $x -= 5; +# After the above operations, it should list $x historical value in order. + +use strict; +use warnings; +use v5.10; + +package hist; + +sub TIESCALAR { + my $class = shift; + my $this = []; + bless $this, $class; + return $this; +} + +sub STORE { + push @{ $_[0] }, $_[1]; +} +sub FETCH { + return $_[0][-1]; +} + +sub GETHIST { + return @{ $_[0] }; +} +1; + +package main; +use Data::Dumper; + +my $obj = tie my $x, "hist"; + +$x = 10; +$x = 20; +$x -= 5; +$x = 3.1416; +$x = [qw(a quick brown fox jumps over the lazy dog)]; +$x = 1e3; +$x*= sqrt 3; + +print Dumper($obj->GETHIST()); + -- cgit