[ https://issues.apache.org/jira/browse/THRIFT-3595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15138390#comment-15138390 ]
ASF GitHub Bot commented on THRIFT-3595: ---------------------------------------- Github user amillerchip commented on a diff in the pull request: https://github.com/apache/thrift/pull/831#discussion_r52270450 --- Diff: test/perl/TestClient.pl --- @@ -250,16 +250,16 @@ sub usage { # # SET TEST # -my $setout = []; +my $setout = {}; for (my $i = -2; $i < 3; ++$i) { - push(@$setout, $i); + $setout->{$i} = 1; --- End diff -- It's just been pointed out to me this this will not work if `$i` is an object, because it will get serialised to its string representation when used as the hash key like this. > Perl Bindings: Set serialization/deserialization differs > -------------------------------------------------------- > > Key: THRIFT-3595 > URL: https://issues.apache.org/jira/browse/THRIFT-3595 > Project: Thrift > Issue Type: Bug > Components: Perl - Compiler > Affects Versions: 0.9.1, 0.9.2, 0.9.3 > Reporter: Adam Millerchip > > In the Perl bindings, a Thrift Set is dezerialized as a hashref, but the > serialization code expects an arrayref. This causes the code to die when > called if attempting to serialize a previously dezerialized Set. > Additionally, it looks like there is a typo in the test that is testing this > feature: > https://github.com/apache/thrift/blob/49f4dc0cd8c87213a0f80ae1daba2d094a358ea7/test/perl/TestClient.pl#L262 > If you change that {{@$setout}} to {{@$setin}}, the test fails. > It doesn't make much sense to implement a Set in Perl as array, because > arrays allow duplicate entries and are ordered. > I've written a change for the serialization that correctly expects a hashref: > https://github.com/apache/thrift/pull/831 -- This message was sent by Atlassian JIRA (v6.3.4#6332)