aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-108/james-smith/perl/ch-1.pl18
1 files changed, 10 insertions, 8 deletions
diff --git a/challenge-108/james-smith/perl/ch-1.pl b/challenge-108/james-smith/perl/ch-1.pl
index 8aa29eb291..a1da7ed3ad 100644
--- a/challenge-108/james-smith/perl/ch-1.pl
+++ b/challenge-108/james-smith/perl/ch-1.pl
@@ -9,16 +9,18 @@ use Test::More;
my $scalar = 1;
my @array = (1);
my %hash = (1=>1);
-my $arrayref = \@array;
-my $hashref = \%hash;
-my $scalarref = \$scalar;
+my $code = sub {my$x=1;};
-say "Scalar ", get_loc( \$scalar );
-say "Scalarref ", get_loc( \$scalarref );
-say "Array ", get_loc( \@array );
-say "Arrayref ", get_loc( \$arrayref );
+say'';
+say 'Type Ref type Address';
+say '------- ---------- ----------------';
+printf "Scalar %-8s %s\n", get_loc( \$scalar );
+printf "Array %-8s %s\n", get_loc( \@array );
+printf "Hash %-8s %s\n", get_loc( \%hash );
+printf "Sub %-8s %s\n", get_loc( $code );
+say'';
sub get_loc {
- return $_[0] =~ s{(?:.*\(|\))}{}rg;
+ return $_[0] =~ m{(REF|ARRAY|HASH|SCALAR|CODE)\((.*?)\)};
}