diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-10-22 14:20:51 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-10-22 14:20:51 +0100 |
| commit | 8cba287d10540749782a4daee77bccb1c251945a (patch) | |
| tree | 78a933271de3b52aa9806c7b91939339681d4bb8 | |
| parent | 97135013a24e8d08fc611211e96eaef751e37ca0 (diff) | |
| download | perlweeklychallenge-club-8cba287d10540749782a4daee77bccb1c251945a.tar.gz perlweeklychallenge-club-8cba287d10540749782a4daee77bccb1c251945a.tar.bz2 perlweeklychallenge-club-8cba287d10540749782a4daee77bccb1c251945a.zip | |
- Added solutions by Burkhard Nickels.
| -rw-r--r-- | challenge-031/burkhard-nickels/perl5/Div.pm | 126 | ||||
| -rw-r--r-- | challenge-031/burkhard-nickels/perl5/ch-1.pl | 35 | ||||
| -rw-r--r-- | challenge-031/burkhard-nickels/perl5/ch-1a.pl | 40 | ||||
| -rw-r--r-- | challenge-031/burkhard-nickels/perl5/ch-2.pl | 60 | ||||
| -rw-r--r-- | stats/pwc-current.json | 233 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown-summary.json | 66 | ||||
| -rw-r--r-- | stats/pwc-language-breakdown.json | 256 | ||||
| -rw-r--r-- | stats/pwc-leaders.json | 538 | ||||
| -rw-r--r-- | stats/pwc-summary-1-30.json | 46 | ||||
| -rw-r--r-- | stats/pwc-summary-121-150.json | 74 | ||||
| -rw-r--r-- | stats/pwc-summary-31-60.json | 126 | ||||
| -rw-r--r-- | stats/pwc-summary-61-90.json | 36 | ||||
| -rw-r--r-- | stats/pwc-summary-91-120.json | 30 | ||||
| -rw-r--r-- | stats/pwc-summary.json | 316 |
14 files changed, 1129 insertions, 853 deletions
diff --git a/challenge-031/burkhard-nickels/perl5/Div.pm b/challenge-031/burkhard-nickels/perl5/Div.pm new file mode 100644 index 0000000000..f7215fc8d6 --- /dev/null +++ b/challenge-031/burkhard-nickels/perl5/Div.pm @@ -0,0 +1,126 @@ +#!/usr/bin/perl + +package Div; + +use strict; +use warnings; +use Data::Dumper qw(Dumper); +require Exporter; + +=head1 NAME + +Div - Division by Zero Test + +=head1 SYNOPSIS + + use Div qw(debug); + my $DEBUG=0; + + my $a = Div->new(4); + my $b = 2; + or + my $b = 0; + my $r = $a/$b; + print "Division $a/$b = $r\n"; + debug($a,$b,$r) if $DEBUG; + +=head1 DESCRIPTION + +This is Task#01 of Perl Weekly Challenge #31 / 2019. A division by Zero shall +be recognized without evaluating the divisor for zero value. Here it is done +with traping the exception in an C<eval> block. The result (scalar ref) is +blessed. + + eval { $res = $$self / $divisor }; + if($@ =~ /division by zero/) { $ret = "Division by zero is not allowed!"; } + else { $ret = ref $res ? $res : bless \$res; } + +Additionally a class for the division C<Div> is defined and the "/" operator +is overloaded. A static debug function can be imported, that shows the +blessing of a scalar ref. + + use overload + '/' => \÷, + '""' => \&out, + 'fallback' => 1; + +=cut + +use overload + '/' => \÷, + '""' => \&out, + 'fallback' => 1; + +our @ISA = qw(Exporter); +our @EXPORT_OK = qw(debug); +$Data::Dumper::Indent=0; + +=head2 new() - Constructor + +Creates a number as Dividend. + + my $a = Div->new(4); + +=cut + +sub new { + my ($class,$n) = @_; + my $self = \$n; + bless $self, $class; +} + +=head2 divide() - division + +Divides the object with a number. + + my $result = $a->divide(2); + or + my $result = $a / 2; + +=cut + +sub divide { + my ($self,$divisor) = @_; + my ($ret,$res); + eval { $res = $$self / $divisor }; + if($@ =~ /division by zero/) { $ret = "Division by zero is not allowed!"; } + else { $ret = ref $res ? $res : bless \$res; } + return $ret; +} + +=head2 out() - output + +Output of the object. This methode needs to be defined and the '""' needs to +be overloaded with this function. + +Otherwise the output of the number in a print function would not work. + + print "Dividend: $a" + +=cut + +sub out { my $self = shift; return $$self; } + +=head2 debug() - debugging of blessed scalar ref + +This is a static function to show the blessing of a scalar reference. +Because it is outside the object I did an Export on it, that it can be +used without Class name. + +=cut + +sub debug { + my (@v) = @_; + for(my $i=0; $i<=$#v; $i++) { + my $w = $v[$i]; + printf("Value %02d: %-10s (%2s) %s\n",$i,ref($w),$w,Dumper($w)); + } +} + +=head1 AUTHOR + +Chuck + +=cut + +1; diff --git a/challenge-031/burkhard-nickels/perl5/ch-1.pl b/challenge-031/burkhard-nickels/perl5/ch-1.pl new file mode 100644 index 0000000000..216e46d34b --- /dev/null +++ b/challenge-031/burkhard-nickels/perl5/ch-1.pl @@ -0,0 +1,35 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +my ($r,$a,$b); + +# Division with function divide +# ------------------------------ +($a,$b) = (5,2); +$r = divide($a,$b); +print "Division $a/$b = $r\n"; + +# Catches the execption and returns message. +# ------------------------------ +($a,$b) = (4,0); +$r = divide($a,$b); +print "Division $a/$b = $r\n"; + +# Throws an exception +# ------------------------------ +($a,$b) = (4,0); +$r = $a/$b; +print "Division $a/$b = $r\n"; + +# ------------------- Divide Function --------------------- +sub divide { + my ($dividend,$divisor) = @_; + my $result; + eval { $result = $dividend/$divisor; }; + if($@ =~ /division by zero/) { $result = "Division by zero is not allowed!"; } + return $result; +} + + diff --git a/challenge-031/burkhard-nickels/perl5/ch-1a.pl b/challenge-031/burkhard-nickels/perl5/ch-1a.pl new file mode 100644 index 0000000000..5ad647a8a5 --- /dev/null +++ b/challenge-031/burkhard-nickels/perl5/ch-1a.pl @@ -0,0 +1,40 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use lib '.'; +use Div qw(debug); +my $DEBUG=0; + +{ +my $a = Div->new(4); +my $b = 2; +my $r = $a/$b; +print "Division $a/$b = $r\n"; +debug($a,$b,$r) if $DEBUG; +} + +{ +my $a = Div->new(4); +my $b = 0; +my $r = $a/$b; +print "Division $a/$b = $r\n"; +debug($a,$b,$r) if $DEBUG; +} + +{ +my $a = Div->new(5); +my $b = 3; +my $r = $a/$b; +print "Division $a/$b = $r\n"; +debug($a,$b,$r) if $DEBUG; +} + +{ +my $a = Div->new(8); +my $b = 0; +my $r = $a/$b; +print "Division $a/$b = $r\n"; +debug($a,$b,$r) if $DEBUG; +} + diff --git a/challenge-031/burkhard-nickels/perl5/ch-2.pl b/challenge-031/burkhard-nickels/perl5/ch-2.pl new file mode 100644 index 0000000000..d23651c608 --- /dev/null +++ b/challenge-031/burkhard-nickels/perl5/ch-2.pl @@ -0,0 +1,60 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use lib '.'; +use Getopt::Long; +use Div qw(debug); +my $DEBUG=0; + +my ($list,$dividend,$divisor) = (0,"",""); +my $o = GetOptions ("list" => \$list, "dividend=s" => \$dividend, "divisor=s" => \$divisor); +if(!$o) { usage(); die("Error in command line arguments\n"); } + +my %vars = ( + var4 => 4, + var2 => 2, + var1 => 1, + zero => 0, + pi => 3.1417, + eternal => 9999.9999, +); + +if($list) { list(); } +elsif($dividend and $divisor and + ($vars{$dividend} or $dividend eq "zero") and + ($vars{$divisor} or $divisor eq "zero")) { + compute($vars{$dividend},$vars{$divisor}); +} +else { + usage(); +} + +# ----------------- Functions ---------------- +sub list { + print "List of Vars:\n"; + foreach my $k (keys %vars) { + printf(" %-8s: %5.5f\n", $k, $vars{$k}); + } +} +sub usage { + print "Usage: ./pwc312.pl [--list|-l] [--dividend <nr> --divisor <nr>]\n"; + print " Script is dividing two numbers, dividend/divisor.\n"; + print " --list, list of possible variables.\n"; + print " --dividend, dividend for division.\n"; + print " --divisor, divisor for division.\n"; + print " Examples:\n"; + print " ./pwc312.pl -l\n"; + print " ./pwc312.pl --dividend var1 --divisor var2\n"; + print " ./pwc312.pl --dividend=var1 --divisor=var3\n"; +} + +sub compute { + my ($dividend,$divisor) = @_; + my $a = Div->new($dividend); + my $b = $divisor; + my $r = $a/$b; + print "Division $a/$b = $r\n"; + debug($a,$b,$r) if $DEBUG; +} + diff --git a/stats/pwc-current.json b/stats/pwc-current.json index a9b3db0a75..e11b2e8179 100644 --- a/stats/pwc-current.json +++ b/stats/pwc-current.json @@ -1,108 +1,211 @@ { + "title" : { + "text" : "Perl Weekly Challenge - 031" + }, + "chart" : { + "type" : "column" + }, + "series" : [ + { + "name" : "Perl Weekly Challenge - 031", + "data" : [ + { + "name" : "Burkhard Nickels", + "drilldown" : "Burkhard Nickels", + "y" : 2 + }, + { + "y" : 2, + "drilldown" : "Dave Cross", + "name" : "Dave Cross" + }, + { + "name" : "Duane Powell", + "y" : 2, + "drilldown" : "Duane Powell" + }, + { + "name" : "Lars Balker", + "y" : 2, + "drilldown" : "Lars Balker" + }, + { + "y" : 2, + "drilldown" : "Markus Holzer", + "name" : "Markus Holzer" + }, + { + "y" : 1, + "drilldown" : "Maxim Kolodyazhny", + "name" : "Maxim Kolodyazhny" + }, + { + "name" : "Nazareno Delucca", + "y" : 2, + "drilldown" : "Nazareno Delucca" + }, + { + "drilldown" : "Pete Houston", + "y" : 1, + "name" : "Pete Houston" + }, + { + "name" : "Simon Proctor", + "drilldown" : "Simon Proctor", + "y" : 1 + }, + { + "drilldown" : "Tyler Limkemann", + "y" : 2, + "name" : "Tyler Limkemann" + }, + { + "y" : 2, + "drilldown" : "Vyacheslav Volgarev", + "name" : "Vyacheslav Volgarev" + }, + { + "name" : "Yet Ebreo", + "y" : 2, + "drilldown" : "Yet Ebreo" + } + ], + "colorByPoint" : 1 + } + ], + "plotOptions" : { + "series" : { + "borderWidth" : 0, + "dataLabels" : { + "format" : "{point.y}", + "enabled" : 1 + } + } + }, + "tooltip" : { + "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", + "followPointer" : 1, + "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" + }, "legend" : { "enabled" : 0 }, + "xAxis" : { + "type" : "category" + }, "subtitle" : { - "text" : "[Champions: 11] Last updated at 2019-10-22 13:15:07 GMT" + "text" : "[Champions: 12] Last updated at 2019-10-22 13:20:32 GMT" }, - "chart" : { - "type" : "column" + "yAxis" : { + "title" : { + "text" : "Total Solutions" + } }, "drilldown" : { "series" : [ { + "id" : "Burkhard Nickels", "data" : [ [ "Perl 5", 2 ] ], + "name" : "Burkhard Nickels" + }, + { "id" : "Dave Cross", + "data" : [ + [ + "Perl 5", + 2 + ] + ], "name" : "Dave Cross" }, { + "name" : "Duane Powell", "data" : [ [ "Perl 5", 2 ] ], - "id" : "Duane Powell", - "name" : "Duane Powell" + "id" : "Duane Powell" }, { - "id" : "Lars Balker", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Lars Balker" + "name" : "Lars Balker", + "id" : "Lars Balker" }, { - "id" : "Markus Holzer", + "name" : "Markus Holzer", "data" : [ [ "Perl 6", 2 ] ], - "name" : "Markus Holzer" + "id" : "Markus Holzer" }, { - "name" : "Maxim Kolodyazhny", + "id" : "Maxim Kolodyazhny", "data" : [ [ "Perl 5", 1 ] ], - "id" : "Maxim Kolodyazhny" + "name" : "Maxim Kolodyazhny" }, { - "id" : "Nazareno Delucca", + "name" : "Nazareno Delucca", "data" : [ [ "Perl 5", 2 ] ], - "name" : "Nazareno Delucca" + "id" : "Nazareno Delucca" }, { "name" : "Pete Houston", - "id" : "Pete Houston", "data" : [ [ "Perl 5", 1 ] - ] + ], + "id" : "Pete Houston" }, { - "id" : "Simon Proctor", "data" : [ [ "Perl 6", 1 ] ], - "name" : "Simon Proctor" + "name" : "Simon Proctor", + "id" : "Simon Proctor" }, { - "id" : "Tyler Limkemann", + "name" : "Tyler Limkemann", "data" : [ [ "Perl 6", 2 ] ], - "name" : "Tyler Limkemann" + "id" : "Tyler Limkemann" }, { - "name" : "Vyacheslav Volgarev", "id" : "Vyacheslav Volgarev", + "name" : "Vyacheslav Volgarev", "data" : [ [ "Perl 5", @@ -111,103 +214,15 @@ ] }, { - "name" : "Yet Ebreo", "data" : [ [ "Perl 5", 2 ] ], + "name" : "Yet Ebreo", "id" : "Yet Ebreo" } ] - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, - "title" : { - "text" : "Perl Weekly Challenge - 031" - }, - "xAxis" : { - "type" : "category" - }, - "series" : [ - { - "colorByPoint" : 1, - "data" : [ - { - "y" : 2, - "name" : "Dave Cross", - "drilldown" : "Dave Cross" - }, - { - "y" : 2, - "name" : "Duane Powell", - "drilldown" : "Duane Powell" - }, - { - "y" : 2, - "name" : "Lars Balker", - "drilldown" : "Lars Balker" - }, - { - "y" : 2, - "name" : "Markus Holzer", - "drilldown" : "Markus Holzer" - }, - { - "name" : "Maxim Kolodyazhny", - "y" : 1, - "drilldown" : "Maxim Kolodyazhny" - }, - { - "name" : "Nazareno Delucca", - "y" : 2, - "drilldown" : "Nazareno Delucca" - }, - { - "name" : "Pete Houston", - "y" : 1, - "drilldown" : "Pete Houston" - }, - { - "name" : "Simon Proctor", - "y" : 1, - "drilldown" : "Simon Proctor" - }, - { - "name" : "Tyler Limkemann", - "y" : 2, - "drilldown" : "Tyler Limkemann" - }, - { - "y" : 2, - "name" : "Vyacheslav Volgarev", - "drilldown" : "Vyacheslav Volgarev" - }, - { - "drilldown" : "Yet Ebreo", - "y" : 2, - "name" : "Yet Ebreo" - } - ], - "name" : "Perl Weekly Challenge - 031" - } - ], - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "format" : "{point.y}", - "enabled" : 1 - } - } - }, - "tooltip" : { - "headerFormat" : "<span style='font-size:11px'>{series.name}</span><br/>", - "followPointer" : 1, - "pointFormat" : "<span style='color:{point.color}'>{point.name}</span>: <b>{point.y:f}</b><br/>" } } diff --git a/stats/pwc-language-breakdown-summary.json b/stats/pwc-language-breakdown-summary.json index 4bce1dc978..ffe3690ab8 100644 --- a/stats/pwc-language-breakdown-summary.json +++ b/stats/pwc-language-breakdown-summary.json @@ -1,20 +1,41 @@ { - "chart" : { - "type" : "column" + "subtitle" : { + "text" : "Last updated at 2019-10-22 13:20:42 GMT" + }, + "xAxis" : { + "labels" : { + "style" : { + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" + } + }, + "type" : "category" + }, + "title" : { + "text" : "Perl Weekly Challenge Contributions - 2019" + }, + "yAxis" : { + "min" : 0, + "title" : { + "text" : null + } + }, + "tooltip" : { + "pointFormat" : "<b>{point.y:.0f}</b>" }, "series" : [ { "dataLabels" : { - "rotation" : -90, + "format" : "{point.y:.0f}", + "y" : 10, "style" : { - "fontFamily" : "Verdana, sans-serif", - "fontSize" : "13px" + "fontSize" : "13px", + "fontFamily" : "Verdana, sans-serif" }, - "enabled" : "true", - "align" : "right", - "format" : "{point.y:.0f}", "color" : "#FFFFFF", - "y" : 10 + "align" : "right", + "rotation" : -90, + "enabled" : "true" }, "data" : [ [ @@ -23,7 +44,7 @@ ], [ "Perl 5", - 1268 + 1270 ], [ "Perl 6", @@ -33,29 +54,8 @@ "name" : "Contributions" } ], - "tooltip" : { - "pointFormat" : "<b>{point.y:.0f}</b>" - }, - "subtitle" : { - "text" : "Last updated at 2019-10-22 13:15:17 GMT" - }, - "title" : { - "text" : "Perl Weekly Challenge Contributions - 2019" - }, - "yAxis" : { - "min" : 0, - "title" : { - "text" : null - } - }, - "xAxis" : { - "labels" : { - "style" : { - "fontSize" : "13px", - "fontFamily" : "Verdana, sans-serif" - } - }, - "type" : "category" + "chart" : { + "type" : "column" }, "legend" : { "enabled" : "false" diff --git a/stats/pwc-language-breakdown.json b/stats/pwc-language-breakdown.json index 3c1d3e4c3b..c99cb8dda4 100644 --- a/stats/pwc-language-breakdown.json +++ b/stats/pwc-language-breakdown.json @@ -1,28 +1,7 @@ { - "legend" : { - "enabled" : "false" - }, - "xAxis" : { - "type" : "category" - }, - "plotOptions" : { - "series" : { - "borderWidth" : 0, - "dataLabels" : { - "enabled" : 1, - "format" : "{point.y}" - } - } - }, - "yAxis" : { - "title" : { - "text" : "Total Solutions" - } - }, "drilldown" : { "series" : [ { - "id" : "001", "data" : [ [ "Perl 5", @@ -37,11 +16,12 @@ 11 ] ], + "id" : "001", "name" : "001" }, { - "id" : "002", "name" : "002", + "id" : "002", "data" : [ [ "Perl 5", @@ -72,10 +52,12 @@ 8 ] ], - "name" : "003", - "id" : "003" + "id" : "003", + "name" : "003" }, { + "id" : "004", + "name" : "004", "data" : [ [ "Perl 5", @@ -89,11 +71,11 @@ "Blog", 9 ] - ], - "name" : "004", - "id" : "004" + ] }, { + "name" : "005", + "id" : "005", "data" : [ [ "Perl 5", @@ -107,11 +89,10 @@ "Blog", 11 ] - ], - "name" : "005", - "id" : "005" + ] }, { + "id" : "006", "name" : "006", "data" : [ [ @@ -126,11 +107,9 @@ "Blog", 7 ] - ], - "id" : "006" + ] }, { - "id" : "007", "data" : [ [ "Perl 5", @@ -145,11 +124,10 @@ 10 ] ], - "name" : "007" + "name" : "007", + "id" : "007" }, { - "id" : "008", - "name" : "008", "data" : [ [ "Perl 5", @@ -163,10 +141,11 @@ "Blog", 12 ] - ] + ], + "id" : "008", + "name" : "008" }, { - "name" : "009", "data" : [ [ "Perl 5", @@ -181,10 +160,10 @@ 13 ] ], - "id" : "009" + "id" : "009", + "name" : "009" }, { - "id" : "010", "data" : [ [ "Perl 5", @@ -199,6 +178,7 @@ 11 ] ], + "id" : "010", "name" : "010" }, { @@ -220,6 +200,7 @@ ] }, { + "id" : "012", "name" : "012", "data" : [ [ @@ -234,10 +215,11 @@ "Blog", 11 ] - ], - "id" : "012" + ] }, { + "name" : "013", + "id" : "013", "data" : [ [ "Perl 5", @@ -251,11 +233,10 @@ "Blog", 13 ] - ], - "name" : "013", - "id" : "013" + ] }, { + "id" : "014", "name" : "014", "data" : [ [ @@ -270,10 +251,10 @@ "Blog", 14 ] - ], - "id" : "014" + ] }, { + "name" : "015", "id" : "015", "data" : [ [ @@ -288,11 +269,9 @@ "Blog", 15 ] - ], - "name" : "015" + ] }, { - "id" : "016", "data" : [ [ "Perl 5", @@ -307,9 +286,11 @@ 12 ] ], + "id" : "016", "name" : "016" }, { + "id" : "017", "name" : "017", "data" : [ [ @@ -324,12 +305,9 @@ "Blog", 12 ] - ], - "id" : "017" + ] }, { - "id" : "018", - "name" : "018", "data" : [ [ "Perl 5", @@ -343,7 +321,9 @@ "Blog", 14 ] - ] + ], + "id" : "018", + "name" : "018" }, { "data" : [ @@ -360,10 +340,11 @@ 13 ] ], - "name" : "019", - "id" : "019" + "id" : "019", + "name" : "019" }, { + "id" : "020", "name" : "020", "data" : [ [ @@ -378,11 +359,9 @@ "Blog", 13 ] - ], - "id" : "020" + ] }, { - "id" : "021", "data" : [ [ "Perl 5", @@ -397,6 +376,7 @@ 10 ] ], + "id" : "021", "name" : "021" }, { @@ -419,6 +399,7 @@ }, { "id" : "023", + "name" : "023", "data" : [ [ "Perl 5", @@ -432,8 +413,7 @@ "Blog", 12 ] - ], - "name" : "023" + ] }, { "id" : "024", @@ -454,7 +434,6 @@ ] }, { - "name" : "025", "data" : [ [ "Perl 5", @@ -469,11 +448,12 @@ 12 ] ], + "name" : "025", "id" : "025" }, { - "id" : "026", "name" : "026", + "id" : "026", "data" : [ [ "Perl 5", @@ -508,7 +488,6 @@ "id" : "027" }, { - "name" : "028", "data" : [ [ "Perl 5", @@ -523,10 +502,10 @@ 9 ] ], + "name" : "028", "id" : "028" }, { - "name" : "029", "data" : [ [ "Perl 5", @@ -541,11 +520,10 @@ 11 ] ], - "id" : "029" + "id" : "029", + "name" : "029" }, { - "id" : "030", - "name" : "030", "data" : [ [ "Perl 5", @@ -559,14 +537,17 @@ "Blog", 7 ] - ] + ], + "id" : "030", + "name" : "030" }, { "id" : "031", + "name" : "031", "data" : [ [ "Perl 5", - 14 + 16 ], [ "Perl 6", @@ -576,41 +557,37 @@ "Blog", 0 ] - ], - "name" : "031" + ] } ] }, - "subtitle" : { - "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-10-22 13:15:17 GMT" - }, "title" : { "text" : "Perl Weekly Challenge Language" }, - "tooltip" : { - "followPointer" : "true", - "headerFormat" : "<span style=\"font-size:11px\"></span>", - "pointFormat" : "<span style=\"color:{point.color}\">Challenge {point.name}</span>: <b>{point.y:f}</b><br/>" + "xAxis" : { + "type" : "category" + }, + "subtitle" : { + "text" : "Click the columns to drilldown the language breakdown. Last updated at 2019-10-22 13:20:42 GMT" }, "series" : [ { - "colorByPoint" : "true", "name" : "Perl Weekly Challenge Languages", "data" : [ { - "drilldown" : "001", |
